X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fmidi_diskstream.cc;h=fa2cdce0140e8664149e8a0fea55cf94785d0414;hb=932d6c79d01be93f491415ef1491bca17d92671f;hp=f45331a5b1cb6e17cf397208022de5eebf1dba17;hpb=e112ed3d6abf631b1f42ea41bb1046ed1cd939df;p=ardour.git diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc index f45331a5b1..fa2cdce014 100644 --- a/libs/ardour/midi_diskstream.cc +++ b/libs/ardour/midi_diskstream.cc @@ -373,7 +373,7 @@ trace_midi (ostream& o, MIDI::byte *msg, size_t len) o << trace_prefix << "Channel " << (msg[0]&0xF)+1 - << " Program PropertyChange ProgNum " + << " Program Change ProgNum " << (int) msg[1] << endl; break; @@ -924,7 +924,6 @@ MidiDiskstream::transport_stopped_wallclock (struct tm& /*when*/, time_t /*twhen if (_write_source) { _write_source->mark_for_remove (); - _write_source->drop_references (); _write_source.reset(); } @@ -1322,6 +1321,10 @@ MidiDiskstream::use_new_write_source (uint32_t n) if (_write_source) { if (_write_source->is_empty ()) { + /* remove any region that is using this empty source; they can result when MIDI recordings + are made, but no MIDI data is received. + */ + _playlist->remove_region_by_source (_write_source); _write_source->mark_for_remove (); _write_source->drop_references (); _write_source.reset();