Number of plugin parameters - any limit?


#1

Hi,

I’m thinking of developing a plugin that controls a Kemper Profiling Amp that’s inserted on a guitar track for re-amping. I’d like to be able to automate all possible parameters of the amp from within the DAW, but especially the effects/stomp section may be fitted with a lot of different effects which each have a lot of different parameters to control. So as there is no option to dynamically add plugin parameters at runtime, depending on the rig that’s currently loaded in that amp, the only possible way to achieve this is to build up a HUGE AudioProcessorValueTreeState holding some hundreds of parameters that possibly could exist in an amp preset. I don’t have any other good idea of how to achieve this in any other way.

Now my questions are: Will there be any performance impact with this approach? Are there known limits to the number of parameters with any host? Will the AudioProcessorValueTreeState somehow get slower with some hundred parameters?

And what’s also important: I’m a Pro Tools user, so I don’t know a lot of other hosts in detail. In Pro Tools, it can be selected which parameters of a plugin instance are exported to the automation track, so this wouldn’t mess up the user’s view in the edit window. But what about other hosts? Are you aware of any host where this long parameter list could generate a view that will be totally unusable to the user?


#2

100s of parameters is fine. 1000s is questionable. 10000s and you’ll start to notice performance issues when most hosts load your plugin. Yes, the parameter lists will get huge, but most hosts have some option where they will automate the next parameter you touch, and then only show parameters that have automation.


#3

It seems there are some of issues with handling lots of parameters.

My current working plugin has about 600 parameters.
And I have one issue with initialization of the plugin.
My plugin takes about 20sec for initialization.
Release build is much faster, but still takes 5,6 sec.

I profiled my plugin and found one thing.
Adding parameters to AudioProcessorValueTree takes most of the time.
I would like to optimize this process,
but so far I haven’t found anything.


#4

Well I didn’t calculate the exact number but it will be some hundreds, so this seems fine to me.


#5

My plugin takes about 20sec for initialization.
Release build is much faster, but still takes 5,6 sec.

Are you using the latest juce? I seem to remember reporting a bug when adding parameters, it would do a linear search each time for any parameters with the same id and report an error if found one. I think this was fixed, making it faster.


#6

Thank you for your information.
I will try latest one tomorrow.