summaryrefslogtreecommitdiff
path: root/libs/evoral/src/Control.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/evoral/src/Control.cpp')
-rw-r--r--libs/evoral/src/Control.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/libs/evoral/src/Control.cpp b/libs/evoral/src/Control.cpp
index bb272ea8b3..480d027ccc 100644
--- a/libs/evoral/src/Control.cpp
+++ b/libs/evoral/src/Control.cpp
@@ -17,6 +17,9 @@
*/
#include <iostream>
+
+#include "pbd/stacktrace.h"
+
#include "evoral/Control.hpp"
#include "evoral/ControlList.hpp"
@@ -49,9 +52,13 @@ void
Control::set_double (double value, double frame, bool to_list)
{
_user_value = value;
+
+ /* if we're in a write pass, the automation watcher will determine the
+ values and add them to the list, so we we don't need to bother.
+ */
- if (to_list) {
- _list->add (frame, value);
+ if (to_list && !_list->in_write_pass()) {
+ _list->add (frame, value, false);
}
}