AudioProcessorListener

hi,

I’ve updated to the latest svn version and I’m trying to use AudioProcessorListener for the GUI along the lines of what is done in GenericAudioProcessorEditor

however it seems that AudioProcessor::sendParamChangeMessageToListeners is only called in response to AudioProcessor::setParameterNotifyingHost

It means that in Live for example, if I change the parameters with the default interface it doesn’t update the GUI.

I was thinking about calling it myself in setParameter but it would be called twice if setParameter was actually called from setParameterNotifyingHost

any guidelines?

well, I’ve tried to call sendParamChangeMessageToListeners myself, and it was a very bad idea since the JuceVSTWrapper is also an AudioProcessorListener and calls setParameterAutomated in response audioProcessorParameterChanged causing an infinite loop.

What you could do is to call sendParamChangeMessageToListeners() in your setParameter method, but only if the value is actually different. The wrapper doesn’t store the parameters itself, so doesn’t know when an incoming message is actually a change to the value or not.

(The parameter handling is something I’m still thinking about though, so all this might get overhauled soon).

Has this been revisited since 1.46? In that version, it seems that AudioProcessorListener is still only intended for the wrapper and the GenericAudioProcessorEditor classes.

Don’t think I’ve done anything in that area of the code for a while.

I dont know if it is directly related to this issue, but I don’t seem to get any change notifications from any AU plugin hosted by my Juce host when sliding their faders, etc. It is different with VST plugins. Some of them do not send notifications, but most of them do.

The class that hosts a plugin inherits from AudioProcessorListener and adds itself to the AudioPluginInstance it creates. Is that sufficient?

The purpose I want to use this for is to maintain a “dirty” flag, so my host knows when the user fiddled with any of the hosted plugins and will save the document on quit.