VST3 in Adobe Audition

Hi, 

 

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,

 

Chris 

Hi!

 

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?

 

Cheers,

Yann

 

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())
{
    filter->editorBeingDeleted(ed);
    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.

I’m discovering this same issue with Adobe Premiere Pro (tested with 15.2.0 on Win, using JUCE 6.0.5). Users are reporting my VST3 plugs crash Premiere when exporting. I tracked it down to the editor fetching meter values from a deleted processor. When I load a debug version and run in VS debugger, the export command hits the jassert in ~AudioProcessor() warning that the editor has not been deleted. Following the comments in this thread, I can work around the crash by deleting the editor in the VST3 terminate method, but this leaves a bunch of leaked objects, very unsatisfying. I’m a little alarmed at the age of this thread, makes me wonder if I’m missing something.

This thread is pretty old (how is it not auto-locked?).

I suggest starting a new post to start fresh instead of resurrecting an old thread. The differences between JUCE from 2014 to JUCE today are considerable!

I started a new post https://forum.juce.com/t/vst3-crashes-in-adobe-premiere-pro-during-export/46135