I'm considering to use AudioProcessorValueTreeState, but the more I look into it, the more it shivers me.
Example (from the tutorial):
void getStateInformation (MemoryBlock& destData) override
ScopedPointer<XmlElement> xml (parameters.state.createXml());
copyXmlToBinary (*xml, destData);
How is thread-safety managed here? The internal-value tree is updated by the message-thread from time to time. What if the host uses another thread to access the current state?
Second problem, what if the internal-parameter value has just been changed, can be guaranteed the next state includes the change?
Another critical problem i see
If the parameter uses an interval, the quantized (stepped) values are stored internally. I think this is problematic, from a hosts perspective, it sets a certain float value, and gets a quantized value back.