How to process audio output in a separate component plugin

As described in this thread my host is able to process the input audio data in a plugin, which has separated components.
But yet still the audio output data is not modified, when using some plugins. On some other plugins my host already correctly processes that.

Normally the visualized input audio in Pro-Q3 also reacts to the user input EQ band changes, but that currently also does not happen when loaded in my host. So it seems there’s still some connection missing between the edit controller and the component related to the audio output.

    OPtr<IComponent> component = plugProvider->getComponent();
    ...
	FUnknownPtr<IProcessContextRequirements> Icontext_req(component);
	if (Icontext_req)
	{
        uint32 flags = Icontext_req->getProcessContextRequirements();  // returns 0
    }

so no specific context requirements for Pro-Q3, but still no modified audio output.
That plug-in was built with a SDK version before 3.7.9, so it does not know anything about IDataExchangeHandler
The two different (multiple times) exchanged messages (during input audio consumption) are obviously plugin-related defined.

PlugProvider::setupPlugin () and PlugProvider::connectComponents ()
are successfully done.

Currently my host does not implement any parameter changes / events; Could this be a reason?
It could be that the controller sends my host something, but its not yet processed?
[…]When the controller transmits a parameter change to the host, the host synchronizes the processor by passing the new values as Steinberg::Vst::IParameterChanges to the process call.[…]

This is implemented:
App_editController->setComponentHandler(&gComponentHandler);
But the ComponentHandler::restartComponent() is never called…
(also never beginEdit/performEdit/endEdit)

Another try was trying to use getState(), but then the app crashes…

[…]After creation of processor and controller, the host sets the controller component state from the processors state. […]
Is there an example on how to do this ?

However if my host loads TDR NOVA instead (which is also not a single-component plugin) any audio input is processed as modified audio output as expected (only difference: there is no UI EQ visualization).
Also when the host uses Blue Cat Triple EQ (Dual) the audio output is correctly modified.

I tested my host with the Ozone Master EQ 11 , which has also a visualization as the Pro-Q3 and with that "Master EQ 11 " plugin my host correctly reacts visually to the UI mouse input (modifying an EQ band) and also the audio output result is correctly produced.
So what could be the difference here?

Do you have implemented the IComponentHandler interface? And do you send parameter changes made via IComponentHandler::beginEdit(), ::performEdit () and ::endEdit () to the processor in the process function?

1 Like