diff options
author | Wohlstand <admin@wohlnet.ru> | 2021-11-19 23:08:56 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2021-11-19 23:08:59 +0300 |
commit | 363ec1864d552e482603a4c5d677647216ba8db0 (patch) | |
tree | a9ff73949d76c46a2eda61b779d8cc4cf4d12c0f /src/midi_sequencer_impl.hpp | |
parent | 14b5b89c4443665bcafdb7e4529c3a6ad8e76480 (diff) | |
download | libADLMIDI-363ec1864d552e482603a4c5d677647216ba8db0.tar.gz libADLMIDI-363ec1864d552e482603a4c5d677647216ba8db0.tar.bz2 libADLMIDI-363ec1864d552e482603a4c5d677647216ba8db0.zip |
Send CC123 after passing loop end
This should resolve the problem of un-closed notes caused by bad placement of loop end, or after XMI files (#160)
Diffstat (limited to 'src/midi_sequencer_impl.hpp')
-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; |