AudioPlugin Host & plugin detection

Hello :slight_smile:

I looked for an answer about my problem but was unable to find something approaching.

I would like to create audio plugins with Juce and, in order to do that, I tried if I would be able to test them in the AudioPlugin Host by using the ArpeggiatorTutorial example provided in tutorials.

I first tried on a MacOS computer, and it found with no problem my plugins once I added the file where they were. I was then able to add them in my PluginHost and try the ArpeggiatorTutorial inside.

Then, I moved on Windows and tried the same manipulation (in order to start coding my audio plugins on Windows), but even thought I’ve been trying since 3 days, I’m unable to make the AudioPlugin Host find my plugins, despite the fact I’ve been doing the same as I did on MacOs.

It seems that, on MacOs, the .AU is enough to get the AudioPlugin Host detecting the plugin, but on Windows it seems not to find anything… I tried to move the plugins to test, I tried numbers of manipulations on compilation, on file paths, nothing seems to work…

Could anybody bring me some solution or any new ideas?
Thank you :slight_smile:

AU is a macOS only format. Windows supports VST and VST3

Rail

Also the CPU bit architecture must match, 32 bit host for 32 bit plugins, 64 bit host for 64 bit plugins. (So called “bit bridging” is possible to do, but the Juce plugin host doesn’t have that implemented.)

In your Plugin project in the Projucer exporter, make sure you have the “Copy Step” enabled, so the plugin will end up at the right location.
It makes it a bit trickier, that this is configurable, and some hosts were seen, that look in non-default locations (IIRC Fruity Loops)

Yeah, I know, I was wondering why on MacOS, the AudioPlugin Host seemed to find the VST plugin while Windows didn’t, if it has something to do in any kind if the absence of .AU on Windows or not

Is that any way to know what kind of plugin I am making/using so I can check if it matches my CPU ? (weaher it is a plugin I found in tutorials or one I coded myself)

Thank you very much for your answer, I checked this parameter (it was disabled) and enabled it but it unfortunately didn’t seem to change anything :confused:

Did you check, if any file ends up at the path configured right below the copy step select?

The %CommonProgramW6432% is an environment variable of your system, you can copy that into the file explorer location bar and it will show you the folder…

The architecture for your plugin is just a few lines below. Have a read through that page, they are all useful settings.

To make them work, you need to save the project with Projucer and reload your VS solution before building (if it doesn’t work as expected, I had to close VS before saving in Projucer and open fresh, but that could have been an old VS or I did something wrong).

Is your plugin project set up to build VST2 and/or VST3? Maybe on Windows it is just building the shared code and standalone application version of the plugin.

Note that after changing all these settings in Projucer, you have to re-export the Visual Studio project and rebuild there.

Thank you very much for all your answers and ideas. I tried them all but didn’t find where the problem could come from…
Lacking of time at the moment, I have to go back on Mac because I can’t stay stuck on this for too long, but if someone has got the answer it may help someone with the same problem in the future ^^

Regarding plugin detection in the Jucer host, is there some way to only make my Juce created AudioUnits appear in the lists? When I scan it takes forever and I get all my regular plugins which is of no use when developing. For VST3, I can chose directory but not for AU.

Also, do the Juce PluginHost need to be restarted after every new build? I can’t seem to get re-scan (of VST3) to find the latest build, but rather the one present at startup like it’s cached. (I’m still on Juce 5 though).

Clear the plugins in the host then drag your plugins from their build folder into the list. You can then add the host to the scheme and when you run it’ll start up the host and attach to it.

Rail

That makes things a lot easier.
I could only drag/drop VST3, though. Not (AU) components. Nothing happens with those. (Did drag original, not alias).

Dragging AU .component should work if you have AU enabled as a host in the PJ settings. The default is VST3 and AU on macOS (VST3 only on Windows)

Rail

Interesting, so where is this setting found in ProJucer?

There’s one setting “JUCE_PLUGIN_HOST_VST/AU etc” under Modules: juce_audio_processors but they are all disabled in my plugin project although VST3 works. But I guess this is the wrong place to look since my plugin is not a host.

In the Juce PluginHost a scan will reveal installed AU so I guess AU:s are enabled there although I can’t drag and drop.

I was talking about the Host app’s PJ settings… which if they’re scanning AU it’s enabled.

Have you tried dragging a known working .component into the scanner window to confirm it doesn’t work?

Rail

I don’t find anything called PJ settings in the host, however you’re right I can drag a 3rd party working component into the Juce Host. However that doesn’t explain why I can drag the VST3 of my project but not the AU into the Juce Host. The VST3 is working so the AU should too. I will look into how the AU works in other hosts. Maybe it’s some security Apple/Mojave stuff going on?

Now that you mention it, AU needs either a restart or a gentle nudge to find new AUs:
killall -9 AudioComponentRegistrar

2 Likes

Yes, that helped. The Juce Pluginhost also needed to be restarted.
Problem solved.