diff options
Diffstat (limited to 'libs/ardour/midi_playlist.cc')
-rw-r--r-- | libs/ardour/midi_playlist.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libs/ardour/midi_playlist.cc b/libs/ardour/midi_playlist.cc index 0aa3779034..27410462d1 100644 --- a/libs/ardour/midi_playlist.cc +++ b/libs/ardour/midi_playlist.cc @@ -150,10 +150,12 @@ MidiPlaylist::read (MidiRingBuffer& dst, nframes_t start, sort(regs.begin(), regs.end(), layer_cmp); for (vector<boost::shared_ptr<Region> >::iterator i = regs.begin(); i != regs.end(); ++i) { - // FIXME: ensure time is monotonic here + // FIXME: ensure time is monotonic here? boost::shared_ptr<MidiRegion> mr = boost::dynamic_pointer_cast<MidiRegion>(*i); - mr->read_at (dst, start, dur, chan_n); - _read_data_count += mr->read_data_count(); + if (mr) { + mr->read_at (dst, start, dur, chan_n, _note_mode); + _read_data_count += mr->read_data_count(); + } } return dur; |