diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2019-06-05 10:02:27 -0600 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2019-06-05 10:02:39 -0600 |
commit | fb2e65fd358b40568f2d2b20f59827e938b876e3 (patch) | |
tree | 896c3053659ca46a2824ba95c48749adbeced7a1 /libs/ardour/midi_track.cc | |
parent | 2c88055ef4b81146e302bfedffbe63c8e07979ad (diff) |
do not set MIDI CC values on locate if control/parameter is set to "Off"
Diffstat (limited to 'libs/ardour/midi_track.cc')
-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) { |