diff options
Diffstat (limited to 'libs/ardour/midi_state_tracker.cc')
-rw-r--r-- | libs/ardour/midi_state_tracker.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/ardour/midi_state_tracker.cc b/libs/ardour/midi_state_tracker.cc index f5020e08a7..342d9d0e58 100644 --- a/libs/ardour/midi_state_tracker.cc +++ b/libs/ardour/midi_state_tracker.cc @@ -85,6 +85,14 @@ MidiStateTracker::track (const MidiBuffer::iterator &from, const MidiBuffer::ite continue; } + /* catch AllNotesOff message and turn off all notes + */ + + if (ev.type() == MIDI_CTL_ALL_NOTES_OFF) { + cerr << "State tracker sees ALL_NOTES_OFF, silenceing " << sizeof (_active_notes) << endl; + memset (_active_notes, 0, sizeof (_active_notes)); + } + track_note_onoffs (ev); } } |