From 604e090372f47bcc1fa537bf01df5b79259b2032 Mon Sep 17 00:00:00 2001 From: reuk Date: Thu, 25 May 2023 20:12:38 +0100 Subject: [PATCH] VST3 Host: Update host parameter values when only plugin AudioProcessor reports changes --- .../format_types/juce_VST3PluginFormat.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp index 2e0bfc54f6..701eae8eb1 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp @@ -2225,7 +2225,7 @@ public: for (const auto* item : queues) { auto* ptr = item->ptr.get(); - callback (ptr->getParameterIndex(), ptr->get()); + callback (ptr->getParameterIndex(), ptr->getParameterId(), ptr->get()); } } @@ -2734,9 +2734,12 @@ public: processor->process (data); - outputParameterChanges->forEach ([&] (Steinberg::int32 index, float value) + outputParameterChanges->forEach ([&] (Steinberg::int32 index, Vst::ParamID id, float value) { - parameterDispatcher.push (index, value); + cachedParamValues.setWithoutNotifying (index, value); + + if (auto* param = getParameterForID (id)) + param->setValueWithoutUpdatingProcessor (value); }); midiMessages.clear();