summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/disk_reader.cc7
-rw-r--r--libs/ardour/midi_track.cc3
2 files changed, 9 insertions, 1 deletions
diff --git a/libs/ardour/disk_reader.cc b/libs/ardour/disk_reader.cc
index 998984cc4c..1db2449c50 100644
--- a/libs/ardour/disk_reader.cc
+++ b/libs/ardour/disk_reader.cc
@@ -522,9 +522,14 @@ DiskReader::overwrite_existing_buffers ()
RTMidiBuffer* mbuf = rt_midibuffer ();
if (mbuf) {
+ boost::shared_ptr<MidiTrack> mt = boost::dynamic_pointer_cast<MidiTrack>(_track);
+ MidiChannelFilter* filter = mt ? &mt->playback_filter() : 0;
+
PBD::Timing minsert;
minsert.start();
- midi_playlist()->render (0);
+
+ midi_playlist()->render (filter);
+
minsert.update();
assert (midi_playlist()->rendered());
// cerr << "Reading " << name() << " took " << minsert.elapsed() << " microseconds, final size = " << midi_playlist()->rendered()->size() << endl;
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index 856c90efb8..5c58506adc 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -86,6 +86,9 @@ MidiTrack::MidiTrack (Session& sess, string name, TrackMode mode)
, _input_active (true)
{
_session.SessionLoaded.connect_same_thread (*this, boost::bind (&MidiTrack::restore_controls, this));
+
+ _playback_filter.ChannelModeChanged.connect_same_thread (*this, boost::bind (&Track::playlist_modified, this));
+ _playback_filter.ChannelMaskChanged.connect_same_thread (*this, boost::bind (&Track::playlist_modified, this));
}
MidiTrack::~MidiTrack ()