[3.0P] dont dump chain(1) in session.cc
[ardour.git] / libs / ardour / midi_diskstream.cc
index 8b047490e772ff11d83919c510d28ada17404ad7..fa2cdce0140e8664149e8a0fea55cf94785d0414 100644 (file)
@@ -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,7 +1321,12 @@ 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();
                } else {
                        _write_source.reset();