I’ve been digging into an issue where my plugins won’t respond to automation very well in some hosts (Sonar, FL Studio mostly)
After mistakenly thinking it was something to do with AsyncUpdate, I believe I’ve now actually found the issue.
When a parameter is changed, an asyncUpdate gets dispatched, which causes setValue() in SliderAttachment::Pimpl to be called, which sets the value of the Slider. In the sliders listener, the parameter is set which ends up calling setValueNotifyingHost() which causes some hosts to have a heart attack.
I think setValueNotifyingHost() should only be called when the user moves a control or the plugin state changes. It shouldn’t be getting called in response to automation causing setParameter() to be called.
So in juce_AudioProcessorValueTreeState.cpp, I think in the void setValue (float newValue) override functions should set their underlying control with the dontSendNotification flag.