summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_model.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2015-05-12 20:10:23 -0400
committerDavid Robillard <d@drobilla.net>2015-05-12 20:10:23 -0400
commit4d2d693190f38697c7354ef4638f7780ea90e938 (patch)
tree3de1e01258ae058729f234b4beb64b80be40c894 /libs/ardour/midi_model.cc
parent16ded1acacf91c05f58e7bf61aa673f44813521e (diff)
Fix stuck notes on save during MIDI playback.
Diffstat (limited to 'libs/ardour/midi_model.cc')
-rw-r--r--libs/ardour/midi_model.cc5
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) {