diff --git a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm index 400f0e74ff..1c55eceb9f 100644 --- a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm +++ b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm @@ -1732,7 +1732,6 @@ private: #if JUCE_MAC void addPropertyChangeListener (AudioUnitPropertyID type) const { - AudioUnitEvent event; event.mEventType = kAudioUnitEvent_PropertyChange; event.mArgument.mProperty.mPropertyID = type; diff --git a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp index cc5f29f053..6b16c4aea4 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp @@ -328,7 +328,7 @@ struct VST3HostContext : public Vst::IComponentHandler, // From VST V3.0.0 attributeList = new AttributeList (this); } - virtual ~VST3HostContext() override {} + ~VST3HostContext() override = default; JUCE_DECLARE_VST3_COM_REF_METHODS @@ -2883,11 +2883,16 @@ public: jassert (editController != nullptr); warnOnFailureIfImplemented (editController->setComponentState (&stream)); + resetParameters(); + } + void resetParameters() + { for (auto* parameter : getParameters()) { auto* vst3Param = static_cast (parameter); - vst3Param->setValueWithoutUpdatingProcessor ((float) editController->getParamNormalized (vst3Param->getParamID())); + const auto value = (float) editController->getParamNormalized (vst3Param->getParamID()); + vst3Param->setValueWithoutUpdatingProcessor (value); } } @@ -3505,6 +3510,9 @@ void VST3HostContext::restartComponentOnMessageThread (int32 flags) if (hasFlag (flags, Vst::kMidiCCAssignmentChanged)) plugin->updateMidiMappings(); + if (hasFlag (flags, Vst::kParamValuesChanged)) + plugin->resetParameters(); + plugin->updateHostDisplay (AudioProcessorListener::ChangeDetails().withProgramChanged (true) .withParameterInfoChanged (true)); }