summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_track.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/midi_track.cc')
-rw-r--r--libs/ardour/midi_track.cc10
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) {