summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ladspa_plugin.cc5
-rw-r--r--libs/ardour/lv2_plugin.cc7
-rw-r--r--libs/ardour/vst_plugin.cc4
3 files changed, 16 insertions, 0 deletions
diff --git a/libs/ardour/ladspa_plugin.cc b/libs/ardour/ladspa_plugin.cc
index 1b3a5ea2e3..be3fefdaac 100644
--- a/libs/ardour/ladspa_plugin.cc
+++ b/libs/ardour/ladspa_plugin.cc
@@ -279,6 +279,11 @@ void
LadspaPlugin::set_parameter (uint32_t which, float val)
{
if (which < _descriptor->PortCount) {
+
+ if (get_parameter (which) == val) {
+ return;
+ }
+
_shadow_data[which] = (LADSPA_Data) val;
#if 0
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index f8a41c5ecd..62bd9f50ad 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -558,7 +558,14 @@ LV2Plugin::set_parameter(uint32_t which, float val)
"%1 set parameter %2 to %3\n", name(), which, val));
if (which < lilv_plugin_get_num_ports(_impl->plugin)) {
+
+ if (get_parameter (which) == val) {
+ return;
+ }
+
_shadow_data[which] = val;
+
+
} else {
warning << string_compose(
_("Illegal parameter number used with plugin \"%1\". "
diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc
index 7c31dcff10..2bbc65a34e 100644
--- a/libs/ardour/vst_plugin.cc
+++ b/libs/ardour/vst_plugin.cc
@@ -101,6 +101,10 @@ VSTPlugin::get_parameter (uint32_t which) const
void
VSTPlugin::set_parameter (uint32_t which, float val)
{
+ if (get_parameter (which) == val) {
+ return;
+ }
+
_plugin->setParameter (_plugin, which, val);
Plugin::set_parameter (which, val);
}