diff options
author | David Robillard <d@drobilla.net> | 2015-05-12 20:10:23 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2015-05-12 20:10:23 -0400 |
commit | 4d2d693190f38697c7354ef4638f7780ea90e938 (patch) | |
tree | 3de1e01258ae058729f234b4beb64b80be40c894 /libs/ardour/midi_model.cc | |
parent | 16ded1acacf91c05f58e7bf61aa673f44813521e (diff) |
Fix stuck notes on save during MIDI playback.
Diffstat (limited to 'libs/ardour/midi_model.cc')
-rw-r--r-- | libs/ardour/midi_model.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/ardour/midi_model.cc b/libs/ardour/midi_model.cc index de5000669c..3d53abaae5 100644 --- a/libs/ardour/midi_model.cc +++ b/libs/ardour/midi_model.cc @@ -1453,6 +1453,11 @@ MidiModel::sync_to_source (const Glib::Threads::Mutex::Lock& source_lock) return false; } + /* Invalidate and store active notes, which will be picked up by the iterator + on the next roll if time progresses linearly. */ + ms->invalidate(source_lock, + ms->session().transport_rolling() ? &_active_notes : NULL); + ms->mark_streaming_midi_write_started (source_lock, note_mode()); for (Evoral::Sequence<TimeType>::const_iterator i = begin(TimeType(), true); i != end(); ++i) { |