VST3 crashes in Adobe Premiere Pro during export

Posting to a new topic rather than extending this older related topic

To recap, my VST3 users are reporting crashes when exporting media in Adobe Premiere Pro (tested with 15.2.0 on Win, using JUCE 6.0.5). 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::~AudioProcessor() warning that the editor has not been deleted.

I built the GainPlugin demo from JUCE 6.0.8 and ran a debug version in Premiere and it too hits the same jassert when exporting.

I can work around the crash following the suggestions in the linked topic with this implementation of terminate() in juce_VST3_Wrapper.cpp:

    tresult PLUGIN_API terminate() override
    {
		if (auto* pluginInstance = getPluginInstance()) {
			pluginInstance->removeListener(this);

			// make sure editor is deleted
			if (AudioProcessorEditor* editor = pluginInstance->getActiveEditor()) {
				pluginInstance->editorBeingDeleted(editor);
				delete editor;
			}
		}

        audioProcessor = nullptr;

        return EditController::terminate();
    }

However, this does not clean up the other editor related objects in VST3 wrapper.

Any news regarding this issue? We are having the same problem with our plugins in Adobe Premiere and also Audition.

When attaching the debugger to Audition on MacOS, I get tons of leaked object which are all related to the editor. It happens after closing Audition when any JUCE plugin had been loaded as an effect. Apparently the editor doesn’t get properly deleted…

The following in the processor destructor doesn’t seem to help neither:

if (auto ed = getActiveEditor())
{
    editorBeingDeleted(ed);
    delete ed;
}

Sounds like it’s probably related to the issue discussed in this thread: Bug report: VST3 in Adobe Audition has no GUI - #5 by ed95

In short, Audition is buggy and doesn’t free the plugin editor correctly. Our most recent Audition workaround was added after JUCE 6.0.8, so make sure you’re testing with 6.1.0 or newer.

1 Like