Padshop VST3 Fails to Load More than Once

I’ve been trying to improve support for VST3 plugins in Waveform but keep running in to problems. The most recent of these is that Steinberg’s Padshop doesn’t want to be loaded more than once.

If I scan and add it to the JUCE Plugin Host, delete the plugin then try to add it from the list again I get this assertion and the plugin fails to initialise:

If I remove it and add it again I get this crash:

Our testers confirm this is happening with all Steinberg synths.
It looks like the DLL doesn’t want to load more than once?

Any ideas?

Hi @dave96,

recently I have seen the same crash with our JUCE-based plugin host. Did you ever find a workaround for this?

Honestly I can’t remember. I think my trial for Padshop has run out so I can’t even test it anymore. Sorry I can’t be of more help.

Maybe contact Steinberg to let them know this is still an issue?

Ok, thanks for the feedback.

I tried to debug this a little more but I am stuck with the interpretation of my findings. Maybe someone else has an idea how that could be fixed?

  • One can load or unload as many Retrologue instances as long as at least one instance is kept active in the plugin host. The order does not matter.
  • After removing ALL Retrologue instances in the plugin host, adding a new instance will crash.
  • Removing the call to bundleExit in DLLHandle destructor (juce_VST3PluginFormat.cpp:840) resolves the crash.

So I guess calling bundleExit on Retrologue corrupts some internal state of the bundle and calling bundleEntry again is not able to recover.

This will hopefully be fixed with my PR Feel free to test and confirm.

1 Like