diff --git a/libs/ardour/ardour/vst3_plugin.h b/libs/ardour/ardour/vst3_plugin.h index 6482ff04e3..fcfa602d4a 100644 --- a/libs/ardour/ardour/vst3_plugin.h +++ b/libs/ardour/ardour/vst3_plugin.h @@ -173,7 +173,9 @@ public: EndGesture, ValueChange, InternalChange, - PresetChange }; + PresetChange, + ParamValueChanged + }; PBD::Signal3 OnParameterChange; diff --git a/libs/ardour/vst3_plugin.cc b/libs/ardour/vst3_plugin.cc index 04027db66f..7226d27166 100644 --- a/libs/ardour/vst3_plugin.cc +++ b/libs/ardour/vst3_plugin.cc @@ -124,6 +124,8 @@ VST3Plugin::parameter_change_handler (VST3PI::ParameterChange t, uint32_t param, break; case VST3PI::ValueChange: _parameter_queue.write_one (PV (param, value)); + /* fallthrough */ + case VST3PI::ParamValueChanged: /* emit ParameterChangedExternally, mark preset dirty */ Plugin::parameter_changed_externally (param, value); break; @@ -1943,6 +1945,7 @@ VST3PI::update_shadow_data () _input_param_changes.addParameterData (i->second, index)->addPoint (0, v, index); #endif _shadow_data[i->first] = v; + OnParameterChange (ParamValueChanged, i->first, v); /* EMIT SIGNAL */ } } }