summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_track.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-11-29 01:25:27 -0500
committerDavid Robillard <d@drobilla.net>2014-11-29 01:25:27 -0500
commited1bbefd193be8a21eb4436442ee7acf49c858a2 (patch)
treec2dbd24ca7b8b9485c125cb93a23d99ff05a9534 /libs/ardour/audio_track.cc
parentf190e630ab2b3d2ff1f7c8640a7d4a072ea3437e (diff)
Somewhat working gain automation.
This probably isn't correct in several ways, but it works more than it did, so I figure it's push worthy. Still not working: * Saving mute automation list * Dragged control points are not snapped to model restrictions (boolean, in this case, but general problem) * Line goes funny if you record mute automation (as opposed to drawing it which works)
Diffstat (limited to 'libs/ardour/audio_track.cc')
-rw-r--r--libs/ardour/audio_track.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc
index 13d5c43dda..c458668e18 100644
--- a/libs/ardour/audio_track.cc
+++ b/libs/ardour/audio_track.cc
@@ -350,6 +350,16 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram
return dret;
}
+ if (_mute_control->list() && _mute_control->automation_playback()) {
+ bool valid = false;
+ const float mute = _mute_control->list()->rt_safe_eval(transport_frame, valid);
+ if (mute >= 0.5 && !muted()) {
+ _mute_control->set_value(1.0); // mute
+ } else if (mute < 0.5 && muted()) {
+ _mute_control->set_value(0.0); // unmute
+ }
+ }
+
_silent = false;
_amp->apply_gain_automation(false);