Created a “copy” of AudioParameterFloat called FaustAudioParamterFloat (put it in FaustPluginProcessor.cpp) with one change. The setValue() function is public not private.
Then in FaustPluginAudioParameterFloat, inherited from FaustAudioParameterFloat instead of AudioParameterFloat.
Then in FaustPlugingAudioParameterFloat setValue becomes:
virtual void setValue(float newValue) override
{
modifyZone(FAUSTFLOAT(range.convertFrom0to1(newValue)));
// Needs to update Value in RangedParameter
FaustAudioParameterFloat::setValue(newValue);
}
Hooray !!! This fixed the PGM editor to bring back the parameter when re-opened.
This could probably be improved by putting more into FaustAudioParameterFloat, but seems to be working as is.
If anyone wants the code for FaustAudioParameterFloat I can send it to you.
All of the other FaustPluginAudioParameter…s should probably be changed in the same way.