AudioProcessorParameter child classes on PT 11 / AAX?


#1

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 ...

 

Any ideas??


#2

For anyone that cares about this - I just got rid of my custom method and did the value conversion before calling my custom class, and it works now.

So it definitely seems like a bug with the AAX+PT 11 combo. Perhaps the JUCE AAX Wrapper is messing up somewhere, or perhaps PT 11 is special in the way it calls Paramater Updates and such.