Reported by user:
-
pitch wheel is not at 0 (low position instead) when inserting AAS plugins and others, and new position not saved with edit
-
no sound at all for Cakewalk Rapture Pro
-
no sound for Arturia plugins until we change the first preset, but still no sound when quit and relaunch Waveform
I have Pigments, and have reproduced the last issue. I will try and get copies of the other plugins to reproduce. This is broken in 9f03bbc358d67a3e0d0e3d7082259a4155aebd85 and still working in 4cfe27af0858b125e0759fcb43e5179079aa9bb3.
The issue is this function here that I’m not quite sure the purpose of. After initialization, it loops through all the parameters and sets their value. Now I think they are all marked as dirty, then in the first processAudio it blasts every parameter back to the plugin because it thinks they are dirty.
void setComponentStateAndResetParameters (Steinberg::MemoryStream& stream)
{
jassert (editController != nullptr);
warnOnFailureIfImplemented (editController->setComponentState (&stream));
for (auto* parameter : getParameters())
{
auto* vst3Param = static_cast<VST3Parameter*> (parameter);
vst3Param->setValueFromEditor ((float) editController->getParamNormalized (vst3Param->getParamID()));
}
}
Here is my ‘fix’. Not sure it’s correct, but now plugins work again after load and parameters can also be updated from UI:
