diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/midi_track.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc index ac4791b400..61c5307016 100644 --- a/libs/ardour/midi_track.cc +++ b/libs/ardour/midi_track.cc @@ -387,10 +387,20 @@ MidiTrack::non_realtime_locate (samplepos_t pos) /* Update track controllers based on its "automation". */ const samplepos_t origin = region->position() - region->start(); BeatsSamplesConverter bfc(_session.tempo_map(), origin); + for (Controls::const_iterator c = _controls.begin(); c != _controls.end(); ++c) { + + boost::shared_ptr<AutomationControl> ac = boost::dynamic_pointer_cast<AutomationControl> (c->second); + + if (!ac->automation_playback()) { + continue; + } + boost::shared_ptr<MidiTrack::MidiControl> tcontrol; boost::shared_ptr<Evoral::Control> rcontrol; + if ((tcontrol = boost::dynamic_pointer_cast<MidiTrack::MidiControl>(c->second)) && + (rcontrol = region->control(tcontrol->parameter()))) { const Temporal::Beats pos_beats = bfc.from(pos - origin); if (rcontrol->list()->size() > 0) { |