audioProcessorParameterChanged deprecating, and AAX infinite loop

Hey guys -

An edge case issue here, where setting the param (via setParamNotifyingHost) can cause an infinite loop in AAX plugins.

Since it’s in code marked as “will be deprecated” in Juce, I just commented it out and don’t see any negative side effects so far.

Anyway, just letting you know.

It’s only in AAX, and it seems only to happen when I set the param value from a thread other than UI (basically, I have a worker thread that changes a couple values in certain cases).

More generally, I’d love to know why we have these two listener systems, are they both needed / used for some DAWs? Why send parameterValueChanged, and then audioProcessorParameterChanged?

Correction, audioProcessorParameterChanged is apparently still needed for nuendo / cubase / sound forge … which otherwise snap the parameter values back to their defaults when gestures end if you have only called paramterValueChanged. Guessing this is part of why we still have both of these systems around.

Pro Tools has some issues either way.

I know it’s hard/impossible to support all DAWs since they all deal with the gestures and change messages differently, but if I can get any clarity on when the audioProcessorParameterChanged calls might be deprecated, it would be quite helpful.

Thanks as always!

AudioProcessorParameterChanged is actually quit handy, I use it and few time in my repo, especially to observe the state of a processor without need to change it and add a listener to any single parameter. Right? It shouldn’t be removed. (Or am I wrong, whats the alternative?)

I agree! AudioProcessor listeners are very useful (Though, as you probably know, they are also something to be used carefully since the calls are synchronous).

There are no plans to lose this functionality, but it seems like they are deprecating those listeners in favor or listeners places on the individual parameters, see the note here:

I suspect that the issues I’m seeing are a result of that change, which seems to be in progress.

Hopefully someone from Juce can confirm here, and give us an idea of the path forward.

Aha! Looks like the infinite loop only happens when calling setParamNotifyingHost on a parameter that has NOT actually changed (which causes Pro Tools to freak out, apparently).

It’s not Juce’s job to check if the value has actually changed of course, so I’m not sure this could be done better … but there it is, for whomever might have the same issue.