Browse Source

VST3: Wrap program parameter changes in begin/endEdit() calls to ensure that automation data is recorded correctly

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

+ 9
- 12
modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp View File

@@ -594,19 +594,13 @@ public:
bool setNormalized (Vst::ParamValue v) override
{
Vst::ParamValue program = v * info.stepCount;
if (! isPositiveAndBelow ((int) program, owner.getNumPrograms()))
if (! isPositiveAndBelow ((int) toPlain (v), owner.getNumPrograms())
|| v == valueNormalized)
return false;
if (valueNormalized != v)
{
valueNormalized = v;
changed();
return true;
}
return false;
valueNormalized = v;
changed();
return true;
}
void toString (Vst::ParamValue value, Vst::String128 result) const override
@@ -954,7 +948,10 @@ public:
if (paramValue != EditController::getParamNormalized (JuceAudioProcessor::paramPreset))
{
EditController::setParamNormalized (JuceAudioProcessor::paramPreset, paramValue);
beginEdit (JuceAudioProcessor::paramPreset);
paramChanged (JuceAudioProcessor::paramPreset, (float) paramValue);
endEdit (JuceAudioProcessor::paramPreset);
flags |= Vst::kParamValuesChanged;
}
}


Loading…
Cancel
Save