VST3 in Adobe Audition



I am developing a VST3 implementation using JUCE. Generally the plugin appears to work in most DAWs without issue, however Adobe Audition and Premiere seem to cause a problem. I have narrowed this down to the deletion of processor before controller (editor), which is disliked by JUCE. I was wondering if anyone had similar issues and whether there was an appropriate solution? 

Windows 8
Adobe Audition CC version 6.0 64bit

Many thanks,





We have similar problems with Premiere Pro CC (2014) on Windows 7.

We also run into the jassert which mentions that "the editor should have been deleted before the filter that it refers to is deleted". Furthermore I have noticed that the constructor of our plugins audio processor is called several times, even if I just try to deactivate it by pressing the bypass button. That's odd, isn't it?

Premiere crashs after I hit the bypass button when our editor calls getAudioProcessor(). Probably it was deleted before or perhaps it was recreated meanwhile and the editor uses an old address? And there is another crash in the JuceVST3Editor class ( component->addToDesktop (0, parent); ) after the editor window was hidden and I click on the plugin to see it again.

Has anybody solved these problems?





Audition and Premiere seem to create an editor but keep it to the plugin to delete it again.
We seemed to have been able fixing this issue by adding thic code to VST3 wrapper’s terminate() before the AudioProcessor instance is deleted:

if (AudioProcessorEditor* ed = filter->getActiveEditor())
    delete[] ed;

We don’t use JUCE’s VST3 wrapper, so “filter” is probably named differently.

delete[] ed;

Woah there.. huh!?? Surely that would crash!?

It hasn’t yet. Should this be “delete ed;” instead?
I don’t remember when I manually deleted something the last time but I somehow had vaguely in mind that classes also needed the “delete[]” operator.

That's for deleting arrays.

You should only use delete[] if you have created the object with new [] (i.e an array)

Thanks. Due to Jules’ comment I had a closer look at delete[] vs. delete and changed our code.