I’ve got some parameters in an audio plugin, some are AudioParameterFloat, some are AudioParameterBool, AudioParameterInt and AudioParameterChoice.
I’m finding that audioProcessorParameterChanged() is almost never called for non-float types (Int, Bool, Choice) even though I can see the parameter instance has been updated and changes are reflected in my GUI (which uses the parameter objects directly).
I am making these value changes via Ableton Live, updating the parameters not from the plug-in GUI, but from the sliders Live provides for MIDI mapping (I want this to work, otherwise my parameters can’t be MIDI-mapped).
As an aside - I can see (I think!) that the AudioParameter objects were designed with the idea that you would use the parameter directly in your audio processing code (e.g., just using the *parameter as the value). But I have sub-classes and I need to update the value of variables in these sub-classes, so I need to have callbacks telling me when they have been updated.
I know another solution is the AudioProcessorValueTreeState class - but it seems to me there is less explicit support for bool/int types with most parameters represented as a float (or perhaps I misunderstand). Also - is there a reason they are indexed by Strings rather than Identifiers?
Anyway, very grateful for any advice!