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: