summaryrefslogtreecommitdiff
path: root/libs/ardour/insert.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/insert.cc')
-rw-r--r--libs/ardour/insert.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/libs/ardour/insert.cc b/libs/ardour/insert.cc
index 035d344ab6..1dd6cff83d 100644
--- a/libs/ardour/insert.cc
+++ b/libs/ardour/insert.cc
@@ -340,7 +340,7 @@ PluginInsert::automation_snapshot (nframes_t now, bool force)
AutomationList *alist = *li;
- if (alist && alist->automation_write ()) {
+ if (alist && alist->automation_write () && _session.transport_rolling()) {
float val = _plugins[0]->get_parameter (n);
alist->rt_add (now, val);
@@ -361,7 +361,7 @@ PluginInsert::transport_stopped (nframes_t now)
if (alist) {
alist->reposition_for_rt_add (now);
- if (alist->automation_state() != Auto_Off) {
+ if (alist->automation_state() == Auto_Touch || alist->automation_state() == Auto_Play) {
_plugins[0]->set_parameter (n, alist->eval (now));
}
}
@@ -423,7 +423,7 @@ PluginInsert::set_parameter (uint32_t port, float val)
_plugins[0]->set_parameter (port, val);
- if (automation_list (port).automation_write()) {
+ if (automation_list (port).automation_write() && _session.transport_rolling()) {
if ( desc.toggled ) //store the previous value just before this so any interpolation works right
automation_list (port).add (_session.audible_frame()-1, last_val);
automation_list (port).add (_session.audible_frame(), val);