diff --git a/src/minidexed.cpp b/src/minidexed.cpp index 0240ea5..328eab4 100644 --- a/src/minidexed.cpp +++ b/src/minidexed.cpp @@ -948,13 +948,7 @@ void CMiniDexed::ProcessSound (void) assert (CConfig::ToneGenerators == 8); - // swap stereo channels if needed uint8_t indexL=0, indexR=1; - if (m_bChannelsSwapped) - { - indexL=1; - indexR=0; - } // BEGIN TG mixing float32_t tmp_float[nFrames*2]; @@ -1003,6 +997,13 @@ void CMiniDexed::ProcessSound (void) } // END adding reverb + // swap stereo channels if needed prior to writing back out + if (m_bChannelsSwapped) + { + indexL=1; + indexR=0; + } + // Convert dual float array (left, right) to single int16 array (left/right) for(uint16_t i=0; i 0) + // System Real Time messages may appear anywhere in the byte stream, so handle them specially + if(uchData == 0xF8 || uchData == 0xFA || uchData == 0xFB || uchData == 0xFC || uchData == 0xFE || uchData == 0xFF) + { + MIDIMessageHandler (&uchData, 1); + continue; + } + else if(m_nSysEx > 0) { m_SerialMessage[m_nSysEx++]=uchData; if ((uchData & 0x80) == 0x80 || m_nSysEx >= MAX_MIDI_MESSAGE)