I switched to using the AudioProcessorValueTreeState classes and am loving it.
However, I noticed that AttachedControlBase::parameterChanged() calls triggerAsyncUpdate() in order to update the UI widget with an audio processor parameter change. And if I understand correctly the audio callback thread could be doing the parameterChanged() call.
Sooo, wasn't AsyncUpdater supposed to be sort of "evil" for this? I hope the answer is no, because I like this pattern and would like to use it myself to sync stuff between audio and gui threads.
btw I saw some very informative old threads on this subject about specialized libs that deal with this, but could anyone from the Juce team perhaps give an update on the current best practices of lock-free audio-gui parameter syncing using all the new V4 built-in goodies? I assume if we just stick to those, we should be reasonably safe, right? Perhaps a good topic for a tutorial/whitepaper?