Why is the Processor Terminate Function and Deconstructer called only when a Host exits?

Correct me if I’m wrong, but I’ve been logging the lifespan of my plugin and an example plugin (aGain) and I’ve noticed that the plugin only fully cleans up when the Host exits ( in my case, Waveform 12). Say for example that I add my plugin to a channel and delete it from the channel right after, the logger will tell me the controller class terminates and cleans up, but the processor hangs and never terminates. If I create another instance I get the same behavior. Only when I exit the DAW all together does the logger register that the processor’s termination function is called.

In my case, its something I can work around, but it seems like weird behavior and I’m wondering the logic behind this design?

This is not by design. Do you see the same behaviour in other hosts? Maybe a bug of the host.

1 Like

Thanks for getting back to me Arne, much appreciated! Ok good, this was largely a sanity check and I suspected it could be a weird phenomena from an off brand DAW -I’ll circle back with the developers of Waveform and let them know they got a serious bug here. But this does bring me to another question that I’m wondering if you have encountered before: the clients I’m developing for are Ableton users and as far as I’ve know my specs match Ableton’s VST requirements; however the VST isn’t “seen” by Ableton - hence why we’re working with Waveform 12 at the moment. Another developer suggested it may have something to do with FUID? Seems weird it would work with one host (and hosts explicitly designed for testing VSTs ala Validator) and not others. Any suggestions for things to check?

Thanks again, cheers.

Did you generate a new GUID for your processor and controller classes?
Otherwise check the FAQ on the dev portal .