[JUCE 8.0.9] VST3 can no longer load in JUCE hosts

Hello,

I updated from JUCE 8.0.8 to 8.0.9, and now my VST3 plug-in can no longer load in Pluginval or AudioPluginHost.

The problem seems to be a mismatch of IDs in the VST3 wrapper findClassMatchingDescription.

My guess is that the new VST3 helper in 8.0.9 doesn’t fill the moduleinfo.json file correctly, because if I delete the file, the plug-in loads perfectly.

Also, setting JUCE_VST3_CAN_REPLACE_VST2=1 seems to fix the issue. But I don’t think I can change that afterwards without breaking existing sessions, right?

Is this a bug in 8.0.9 or am I missing something?

Thanks

On my local computer and GitHub runners pluginval loads VST3 correctly (with JUCE 8.0.9 andJUCE_VST3_CAN_REPLACE_VST2=0).

IIRC, the VST3 moduleinfo has been changed a bit in the 8.0.9. Not sure why yours gets affected.

I was just about to create a BR on this and then saw your message. We see the same issue too. When JUCE_VST3_CAN_REPLACE_VST2 is set to “Default (Enabled)” or to “Enabled” in the Projucer, the VST3 ID that is generated in the moduleinfo.json is different.

Moreover: when using '“Enabled” explicitly, the moduleinfo.json file validates perfectly fine using the VST3 SDK moduleinfotool, while when set to “Default (Enabled”), the ID is different and the plugin no longer validates. I was expecting the exact same result whether the Projucer setting is either explicitly set to “Enabled” or “Default (Enabled)” but it doesn’t appear to be the case.

The consequence we see is that VST3 plugins with the wrong ID no longer load in certain hosts, which isn’t limited to the JUCE hosts but also affects loading of the plugin in 3rd party hosts.

1 Like

Second change I had to make to get the ID that is in he moduleinfo.json file to be validated is to set ‘Use Global AppConfig Header’ to ‘Disabled’ (while the default behavior is ‘Enabled’).

Here is a diff of my moduleinfo.json between juce 8.0.8 and juce 8.0.9. The 8.0.8 version will load in Waveform, the 8.0.9 version will not.

1 Like

Does the 8.0.9 version fail to load completely, or does it work if you force a rescan of the plugin?

Fails to load completely. Rescan doesn’t help. Also fails to load FL Studio, loads in Reaper and Live.

findClassMatchingDescription fails to find anything matching the PluginDescription

@reuk I managed to reproduce the VST3 moduleinfo.json problem containing an erroenous ID with the JUCE “Hello World’ demo plugin using the Projucer as workflow, on both Windows as well as macOS. If I build the demo plugin with JUCE 8.0.9, the ID in the manifest file doesn’t get validated by the VST3 SDK moduleinfotool, unless I make the aforementioned changes in the Projucer, which will change the ID:

  • ‘Use Global AppConfig Header’ to ‘Disabled’
  • ‘JUCE_VST3_CAN_REPLACE_VST2’ to ‘Enabled’ instead of ‘Default (enabled)’
1 Like

Thanks for reporting, that should be fixed here:

2 Likes

that seems to have fixed it!