diff options
-rw-r--r-- | src/adlmidi_midiplay.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp index 0348b31..7e484f8 100644 --- a/src/adlmidi_midiplay.cpp +++ b/src/adlmidi_midiplay.cpp @@ -330,6 +330,18 @@ bool MIDIplay::buildTrackData() errorString += std::string(error, (size_t)len); return false; } + + //HACK: Begin every track with "Reset all controllers" event to avoid controllers state break came from end of song + for(uint8_t chan = 0; chan < 16; chan++) + { + MidiEvent event; + event.type = MidiEvent::T_CTRLCHANGE; + event.channel = chan; + event.data.push_back(121); + event.data.push_back(0); + evtPos.events.push_back(event); + } + evtPos.absPos = abs_position; abs_position += evtPos.delay; trackDataNew[tk].push_back(evtPos); |