Browse Source

VST3: Added explicit check for current program value in setComponentState() so it is recalled correctly when loading

tags/2021-05-28
ed 4 years ago
parent
commit
9a127e32e4
1 changed files with 16 additions and 3 deletions
  1. +16
    -3
      modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp

+ 16
- 3
modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp View File

@@ -705,9 +705,22 @@ public:
//==============================================================================
tresult PLUGIN_API setComponentState (IBStream* stream) override
{
// Cubase and Nuendo need to inform the host of the current parameter values
for (auto vstParamId : audioProcessor->vstParamIDs)
setParamNormalized (vstParamId, audioProcessor->getParamForVSTParamID (vstParamId)->getValue());
if (auto* pluginInstance = getPluginInstance())
{
for (auto vstParamId : audioProcessor->vstParamIDs)
{
auto paramValue = [&]
{
if (vstParamId == JuceAudioProcessor::paramPreset)
return EditController::plainParamToNormalized (JuceAudioProcessor::paramPreset,
pluginInstance->getCurrentProgram());
return (double) audioProcessor->getParamForVSTParamID (vstParamId)->getValue();
}();
setParamNormalized (vstParamId, paramValue);
}
}
if (auto* handler = getComponentHandler())
handler->restartComponent (Vst::kParamValuesChanged);


Loading…
Cancel
Save