From 2b3d0c05f547638e8626c5c05359ce234c1e3e96 Mon Sep 17 00:00:00 2001 From: ed Date: Wed, 13 Jan 2021 09:28:22 +0000 Subject: [PATCH] VST3: Fixed program parameter automation not being recorded in Live --- .../VST3/juce_VST3_Wrapper.cpp | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp index 271f0f8e59..4ee29755d5 100644 --- a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp @@ -614,15 +614,21 @@ public: { auto programValue = roundToInt (toPlain (v)); - if (! isPositiveAndBelow (programValue, owner.getNumPrograms()) - || programValue == owner.getCurrentProgram()) - return false; + if (isPositiveAndBelow (programValue, owner.getNumPrograms())) + { + if (programValue != owner.getCurrentProgram()) + owner.setCurrentProgram (programValue); - valueNormalized = v; - owner.setCurrentProgram (programValue); - changed(); + if (valueNormalized != v) + { + valueNormalized = v; + changed(); - return true; + return true; + } + } + + return false; } void toString (Vst::ParamValue value, Vst::String128 result) const override