From 5e967c02a9cfc2fffadc9d0edca294ff193481fd Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 26 Apr 2023 00:19:36 +0200 Subject: [PATCH] VST3: fix manually setting parameter (amend 52a73fdb3) --- libs/ardour/ardour/vst3_plugin.h | 2 +- libs/ardour/vst3_plugin.cc | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/ardour/ardour/vst3_plugin.h b/libs/ardour/ardour/vst3_plugin.h index 83ec98a89c..3cad78d02d 100644 --- a/libs/ardour/ardour/vst3_plugin.h +++ b/libs/ardour/ardour/vst3_plugin.h @@ -164,7 +164,7 @@ public: /* API for Ardour -- Parameters */ bool try_set_parameter_by_id (Vst::ParamID id, float value); - void set_parameter (uint32_t p, float value, int32 sample_off, bool to_list = true); + void set_parameter (uint32_t p, float value, int32 sample_off, bool to_list = true, bool force = false); float get_parameter (uint32_t p) const; std::string format_parameter (uint32_t p) const; Vst::ParamID index_to_id (uint32_t) const; diff --git a/libs/ardour/vst3_plugin.cc b/libs/ardour/vst3_plugin.cc index 9e99182312..6bb2813dba 100644 --- a/libs/ardour/vst3_plugin.cc +++ b/libs/ardour/vst3_plugin.cc @@ -799,7 +799,7 @@ VST3Plugin::connect_and_run (BufferSet& bufs, /* apply parameter changes */ PV pv; while (_parameter_queue.read (&pv, 1)) { - _plug->set_parameter (pv.port, pv.val, 0, true); + _plug->set_parameter (pv.port, pv.val, 0, true, true); } in_index = 0; @@ -1949,11 +1949,11 @@ VST3PI::try_set_parameter_by_id (Vst::ParamID id, float value) } void -VST3PI::set_parameter (uint32_t p, float value, int32 sample_off, bool to_list) +VST3PI::set_parameter (uint32_t p, float value, int32 sample_off, bool to_list, bool force) { Vst::ParamID id = index_to_id (p); value = _controller->plainParamToNormalized (id, value); - if (_shadow_data[p] == value && sample_off == 0 && to_list) { + if (_shadow_data[p] == value && sample_off == 0 && to_list && !force) { return; } if (to_list) {