Hi all! I’m in the process of creating a research project that has a large number of (several thousand) automatable parameters.
This seems to completely thrash performance in the Dec rev (5.4.1) of JUCE - although JUCE 5.3.2 is fine, outside of long load times in the debug builds. I have not compared internal differences - yet. What I do know, is that in v5.4 lots of cycle time is spent in AudioProcessorValueTreeState::flushParameterValuesToValueTree(), which happens each time the timer callback is issued. It appears that this iterates a list of all parameters, maybe not in the most performant way.
I’ve considered duplicating the APVTS class and making some modifications, but before I do, I was wondering if anybody here might have some thoughts about how to approach this. (Or if there’s a way to improve performance without breaking the built-in model) I’ve also been examining to/fromXML to see what gains I might be able to make on the serialization front. Also, with large number of parameters, using state assignment operators is particularly slow. I could optionally revert to the APVTS version in 5.3.2. (which still has slow recall, but scaling doesn’t break it on the timer callbacks)
I understand our use case is atypical - figured somebody here might have ideas. Thanks!