setParameterNotifyingHost has the following two lines:
setParameter (parameterIndex, newValue);
sendParamChangeMessageToListeners (parameterIndex, newValue);
However, JuceVSTWrapper ctr adds the plugin filter as a listener:
So, when sendParamChangeMessageToListeners gets called, setParameter is called once again (eventually…from setParameterAutomated).
Of course, we should watch out for and ignore duplicate edits anyway, but I’m wondering if there is a reason that setParameterNotifyingHost needs to call setParameter directly in the first place. It looks like it is maybe there for an application where the filter does not listen to itself? Or maybe when you absolutley positively want to make sure the host gets the edit first and not rely on the order in the listener list?
Maybe I’ve missed the point of the function, and maybe it is better for the plugin GUI to call sendParamChangeMessageToListeners instead of setParameterNotifyingHost.