Parameter updates when IEditController and IAudioProcessor are the same object?


When the IEditController is created from IAudioProcessor::queryInterface(), do we need to pass the parameter update due to automation playback to the IEditController?

So far we’ve found that it was not necessary, all the plugins already update their GUI after the automation playback with the IAudioProcessor.

Except Softube which expects the IEditController to receive the parameter update even if it is created from IAudioProcessor::queryInterface().

What should be done? Should the DAW always send the parameter update to the IEditController?

On the other hand, for the plugins which do update the GUI just with the automation playback on the IAudioProcessor, if they receive again the same parameter update but later and on a different thread with the IEditController interface, it might conflict with the automation being played to IAudioProcessor right?

Thank you very much,

It feels that the correct solution is to always send the parameter update to the IEditController.

If the IAudioProcessor already does the job to update the GUI parameter, then it should discard the IEditController parameter updates right? Which in that case creates unecessary traffic in the Host to schedule the the updates for IEditController. Then it would be great to have an interface to let the plugin inform the host that there is no need to transmit the parameter update to the IEditController.

Third thought, if IEditController::setParamNormalized(ParamID id, ParamValue value) return kNotImplemented or kResultFalse, then we can set a flag that we don’t need to send further parameter update to IEditController. Does it sounds good?

You should always send parameter updates to the IEditController. Everything else is undefined.