Following the discussion in this thread I implemented a quick plugin that follows the SingleComponentEffect pattern and verified that it works fine both in VST3PluginTestHost as well as a VST2 plugin (meaning the vst2wrapper code does the “right” thing).
I am trying to figure how if this is something that is supported by all VST3 hosts and if it is specified somewhere in the documentation (I did look but did not find exactly). From my understanding the host is instantiating the Processor using the Factory. Then using the getControllerClassId method from the processor, it gets access to the ID for the controller class which it can then instantiate using the Factory as well. In the case of the SingleComponentEffect class, the getControllerClassId returns kNotImplemented and I assume this is the way that the host determine that it should check whether the processor also implements the GUI?
Is this how it works? Is it part of the specification on how a host must behave? Is it specified somewhere? Can you point me to it?
I can also see in the comment: “Cubase 4.2 is the first host that supports combined VST 3 Plug-ins”, so is there other VST3 hosts supporting it as well?