diff options
-rw-r--r-- | src/midi_sequencer_impl.hpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/midi_sequencer_impl.hpp b/src/midi_sequencer_impl.hpp index dac8b12..ee2a77d 100644 --- a/src/midi_sequencer_impl.hpp +++ b/src/midi_sequencer_impl.hpp @@ -1318,8 +1318,13 @@ bool BW_MidiSequencer::processEvents(bool isSeek) m_currentPosition.wait += m_postSongWaitDelay; // One second delay until stop playing } } + m_currentPosition = s.startPosition; m_loop.skipStackStart = true; + + for(uint8_t i = 0; i < 16; i++) + m_interface->rt_controllerChange(m_interface->rtUserData, i, 123, 0); + return true; } else @@ -1330,6 +1335,10 @@ bool BW_MidiSequencer::processEvents(bool isSeek) { m_currentPosition = s.startPosition; m_loop.skipStackStart = true; + + for(uint8_t i = 0; i < 16; i++) + m_interface->rt_controllerChange(m_interface->rtUserData, i, 123, 0); + return true; } else @@ -1354,6 +1363,9 @@ bool BW_MidiSequencer::processEvents(bool isSeek) if(m_interface->onloopEnd) // Loop End hook m_interface->onloopEnd(m_interface->onloopEnd_userData); + for(uint8_t i = 0; i < 16; i++) + m_interface->rt_controllerChange(m_interface->rtUserData, i, 123, 0); + // Loop if song end or loop end point has reached m_loop.caughtEnd = false; shortestDelay = 0; |