I've written a plug-in that compiles, loads, and runs perfectly on VST, VST3, and AU. It compiles successfully on AAX and loads correctly in PT 11 too. However, I can't change any parameter values on AAX/PT 11. I am seriously confused.
I've created a "KnobParameter" child class which inherits from AudioProcessorParameter. The extra methods it implements are a pair of get/set min/max methods,. My knob motion needs to be restricted in certain scenarios, so I use these methods to achieve that. In addition, it implements a setValue method (that overrides the one in AudioProcessorParamter) since AudioProcessorParameter restricts params to be normalized between 0 and 1, while my custom SetValue method does the math to convert it to a -60,60 range (range of my knobs in the UI).
I update the UI in the Editor using a simple timer callback, so that the knobs in the UI read from the KnobParameter that I add in the Processor.
However, upon running the plugin in AAX/PT11, what I see is that the knobs in the UI always snap back to a value between 0 and 1 (my knobs go from -60 to 60). Given the fact that this is happening only on PT, I believe this is being caused by the SetValueNotifyingHost call.
It seems that calling SetValueNotifyingHost on my child class somehow ends up in AudioProcessorParameter::SetValue instead of KnobParameter::SetValue (my custom method).
Is this some sort of bug with AAX or something? I build a universal binary with VST, VST3, AU, and AAX, and simply rename the resulting .component bundle to .aaxplugin (I can't figure out why my XCode post-build script doesnt correctly copy and rename the files automatically)
I'm most definitely overriding AudioProcessorParameter::SetValue in my custom method - it, after all, works on every other DAW/format ...