Thread: AAX and knobs
View Single Post
Old 11-16-2017, 11:03 AM   #26
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 331
Default

I think it's something like this:

Pro Tools echoes parameter changes. For most plugins/hosts, you want to change the IPlug parameter, and tell the host you changed it. With AAX, you want to tell the host the parameter needs changing, and it will tell the plugin to update the parameter. So, you need to override with IPlugAAX::SetParameterFromGUI, same as the original except eliminating OnParamChange.

To complicate matters, the integer rounding is bad, so you end up in a disagreement with threshold param values. Your jerky action, unless you move the mouse fast enough to blow past the thresholds, is due to that fight. You increase the knob value from 0 till it clicks over to 1. You update the knob and parameter, and pass that to PT via IPlugAAX—which interprets the value as 0. PT sends back a param change of 0.

IPlugAAX::EffectInit:

Code:
  param = new AAX_CParameter<int>(paramID->Get(),
    AAX_CString(p->GetNameForHost()),
    (int)p->GetDefault(),
    AAX_CLinearTaperDelegate<int>((int)p->GetMin(), (int)p->GetMax()),  <-- was
    AAX_CStateTaperDelegate<int>((int)p->GetMin(), (int)p->GetMax()),  <-- should be
I think that was the main offender. Somewhat related to int/bool/enum issues is that GetDisplayForHost was broken. I think that's in my pull requests to Oli. I was working from wdl-ol of a couple years back.

Those are the related things in my GIT repository, but I'll double check—seems I did some more changes to IPlugAAX.
earlevel is offline   Reply With Quote