No compatible plug-in format exists for this plug-in

I’ve tried loading three or so different VST plugins, and each time I get ‘No compatible plug-in format exists for this plug-in’. I have VST2 and VST3 enabled in in the projucer. I’m not sure about all the plugins I tried, but at least two of them are definitely supposed to be 64-bit as opposed to 32-bit (my project is 64-bit, but I guess that goes without saying, I don’t think projucer gives a choice in that matter…).

I do have a directory defined for the VST2 and VST3 SDKs, I’m not sure if that could be a problem since for some reason the input field says “legacy” so I’m not sure if you’re expected to include the SDK directory in order to support VST3. But I do think the VST3 SDK I included is the latest version.

Edit: I just nullified the “legacy” VST SDK path and disabled JUCE_PLUGINHOST_VST and JUCE_CUSTOM_VST3_SDK (and left JUCE_PLUGINHOST_VST3 enabled), and I still get the error.

Here’s the relevant part of my code:

class Plugin
{
  juce::AudioPluginFormatManager manager;
  std::unique_ptr< AudioPluginInstance > instance;
public:
  Plugin(string filepath, string formatname, int bitrate, int buffersize)
  {
    PluginDescription desc;
    desc.fileOrIdentifier = filepath;
    desc.pluginFormatName = formatname;
    juce::String errmsg;
    try
    {
      manager.addDefaultFormats();
      instance = manager.createPluginInstance(desc, bitrate, buffersize, errmsg);
    }
    catch (...)
    {
      std::exception_ptr ex = std::current_exception();
      py::print(what());
      throw new py::import_error();
    }
    if (this->instance == nullptr)
    {
      py::print(errmsg.toStdString());
      throw new py::import_error();
    };
  };
};

This is actually being implemented as a Python .pyd module using pybind11, but that shouldn’t be important. The parameters I’m passing are (r"D:\soundshop\vst\plugins\DSK_Saxophones_-_win64\DSK Saxophones - win64\DSK Saxophones.dll", “VST”, 44100, 512)

I don’t remember whether pluginFormatName is supposed to be “VST”, “VST3”, “vst”, or “vst3” for VST3, but I tried all of them, and besides, I don’t see why it asks for a pluginFormatName anyway because the docs seem to imply that juce auto-detects the plugin type when you load it.

Another plugin I tried loading (with the same error) is 'Sonatina Trumpet - 64.dll", and that one I know where I got it in case it’s important: Download Free Trumpet plugin: Sonatina Trumpet by bigcat Instruments

When I searched for 'No compatible plug-in format exists for this plug-in` online, the only solution I found was at Opening plugins , and I tried adapting the solution to my code as follows:

try 
{
  OwnedArray<PluginDescription> pluginDescriptions;
  KnownPluginList plist;
  manager.addDefaultFormats();
  for (int i = 0; i < manager.getNumFormats(); ++i)
    plist.scanAndAddFile(filepath,
      true,
      pluginDescriptions,
      *manager.getFormat(i));

  jassert(pluginDescriptions.size() > 0);
  String errmsg;
  instance = manager.createPluginInstance(*pluginDescriptions[0],
    bitrate, 
    buffersize,
    errmsg);
}

But I got an error that it couldn’t find 'D:/soundshop/vst/plugins/Sonatina Trumpet - 64.dll/manifest.ttl`, so I guess that solution is supposed to work for directories, not for individual file paths, and I don’t want to load by directory path.

Thanks for any help.

The .dll suffix is a VST plugin. The text says legacy, because Steinberg made distribution of VST illegal with a few legacy exceptions.

I am not sure if vst can run in 64 bit software. Chances are, the format is too old.

Is VST a requirement, or can you switch to VST3?

NOTE: VST (==VST2) and VST3 are not backward compatible. They are a completely different API.

Oh, hmm. I think all the VST plugins I’ve downloaded have the .dll suffix, including the ones I’ve downloaded recently (and I was assuming that all VST plugins nowadays are VST3 plugins) and the ones that say they’re 64-bit.

So it seems that VST3 plugins are using the .dll suffix…are you sure .dll means it’s VST2? I’d prefer to use VST3, actually, but if .dll actually does mean VST2, then I’d better support VST2 because that would mean that all the plugins available that I can find are VST2.

Though even if they’re VST2, it should have loaded them since I enabled VST2 in the options and provided a path to the VST2 directory that was in the latest SDK that supported VST2.

You won’t be able to officially support VST2, for reference look at this thread from when it happened:

You could for scientific purpose try to build your host with 32 bit and see if you can load the dlls you found.

I guess you’re right, .dll is strictly VST2. I searched for plugins again, this time specifically for VST3 instead of just VST, and I found some with a .vst3 extension.

Though when I tried to load one, I got:
Unable to load VST-3 plug-in file

I have no idea why.

I tried to get another vst3 plugin from another website, but every source I can find wants you to run their sketchy exe just to download/install the vst files. I don’t trust them. Are there any free vst3 plugins you can recommend? Or even any paid ones if you know they won’t install malware on my system? Thanks

No-one in their right mind selling plugins includes Malware in the installer.

I suppose it depends what your definition of Malware is though, all these sodding installer-installers could be argued as being Malware; Native Instruments, Universal Audio, Acustica, Plugin Alliance all spring to mind as examples of companies forcing me to install a bloated piece of crap just to install the thing I really want to install.

You should find plenty of free plugins on this list

You might want to join the TheAudioProgrammer Discord server, might be faster/easier to discuss there :

Thanks, everyone. I just tried loading the plugin again, and this time it worked. So I’ll go from here and raise another topic (or maybe post on the Discord server?) if (when) I have any more problems.