From 5d8021bf44c066ad9b5ee4e8ab824267824be738 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 19 Dec 2014 18:09:36 -0500 Subject: Maintain correct tracker state on MIDI overwrite. This is a little hard-edged in that edits while rolling will prematurely chop off any playing notes, but at least the state of things actually reflects reality. More sophisticated solution hopefully to come... --- libs/ardour/smf_source.cc | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'libs/ardour/smf_source.cc') diff --git a/libs/ardour/smf_source.cc b/libs/ardour/smf_source.cc index 519d8bbf10..d1a82eb685 100644 --- a/libs/ardour/smf_source.cc +++ b/libs/ardour/smf_source.cc @@ -282,13 +282,8 @@ SMFSource::read_unlocked (const Lock& lock, if (ev_frame_time < start + duration) { destination.write (ev_frame_time, ev_type, ev_size, ev_buffer); - if (tracker) { - if (ev_buffer[0] & MIDI_CMD_NOTE_ON) { - tracker->add (ev_buffer[1], ev_buffer[0] & 0xf); - } else if (ev_buffer[0] & MIDI_CMD_NOTE_OFF) { - tracker->remove (ev_buffer[1], ev_buffer[0] & 0xf); - } + tracker->track(ev_buffer); } } else { break; -- cgit v1.2.3