From 8487a7516d94f45a5003f83eb37139beffe4476e Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 25 Jan 2024 19:19:55 -0500 Subject: [PATCH] what? it was still there? issue #1562 issue #1701 --- src/engine/playback.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 091924fa2..d7b8426e8 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1853,8 +1853,8 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi int chan=msg.type&15; switch (msg.type&0xf0) { case TA_MIDI_NOTE_OFF: { - if (chan<0 || chan>=chans) break; if (midiIsDirect) { + if (chan<0 || chan>=chans) break; pendingNotes.push_back(DivNoteEvent(chan,-1,-1,-1,false,false,true)); } else { autoNoteOff(msg.type&15,msg.data[0]-12,msg.data[1]); @@ -1867,15 +1867,16 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi break; } case TA_MIDI_NOTE_ON: { - if (chan<0 || chan>=chans) break; if (msg.data[1]==0) { if (midiIsDirect) { + if (chan<0 || chan>=chans) break; pendingNotes.push_back(DivNoteEvent(chan,-1,-1,-1,false,false,true)); } else { autoNoteOff(msg.type&15,msg.data[0]-12,msg.data[1]); } } else { if (midiIsDirect) { + if (chan<0 || chan>=chans) break; pendingNotes.push_back(DivNoteEvent(chan,ins,msg.data[0]-12,msg.data[1],true,false,true)); } else { autoNoteOn(msg.type&15,ins,msg.data[0]-12,msg.data[1]); @@ -1890,6 +1891,8 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi break; } } + } else if (midiDebug) { + logD("callback wants ignore"); } //logD("%.2x",msg.type); output->midiIn->queue.pop();