For the past 11 hours straight, I have been trying to code an extremely simple JUCE plugin. It just needs to receive an incoming audio signal and play it back. Specifics aside, it’s as if the templates are outdated. (They aren’t) Decided to isolate my issue further and further, until it was a completely nonfunctional VST3-only plugin. No matter what I do, it will not show up in any DAW. The AudioPluginHost fails to scan for plug-ins almost entirely (it fails to scan plug-ins, no matter which format- except for the preset plugins included with JUCE.
Spent the entire 11 hour day with Chat-GPT trying to figure this out on my own but even it referred me to the forums.
Can’t begin to guess what I’m doing wrong when I’m using unchanged template files from JUCE itself. And now I need about 11 hours worth (yeah I’m pissed) of help from a human
Have you enabled the plugin copy step? Did you build the plugin before trying to scan for plugins in your DAW?
yes and yes. i don’t understand how i could open a template project without building it in an IDE first. i was worried i’d have to answer these kinds of basic questions. i’ve literally been troubleshooting for 11 hours. hit me with something harder, please
Asking “basic” questions is necessary to try and help figure out your issue. If you wanted to avoid being asked basic questions, you could have provided more details in your initial post (what OS are you on, what version of JUCE, did you download the Projucer from the site or build it from source yourself, etc). You also weren’t very specific about the exact problems except saying it’s “a completely nonfunctional VST3-only plugin”. I’m guessing that your project builds successfully as a VST3, and the issue you’re frustrated about is that it won’t show up in any DAWs? If that’s the case, you could try scanning it with pluginval to see if there are scanning errors.
Asking basic questions, especially here, is always an essential first step for those of us donating our time to try to help, because these forums frequently have absolute beginners asking for help, and this:
gave me the impression that you may not be the most experienced developer. Good luck.
More info is required. What OS are you developing with? What are you targetting? Whats your DAW? What development environment are you using - Visual Studio? 2019? 2023? How did you clone the JUCE repo? Did you clone the JUCE repo, or did you download a .zip file? How did you treat that .zip file?
The basic routine for a JUCE project goes like this, and should be the first thing you do to ensure that everything is in place for real development - note, environment is MacOS:
- Clone the repo:
$ git clone https://github.com/juce-framework/JUCE
- Build the included Projucer.app:
$ open JUCE/extras/Projucer/Builds/MacOS/Projucer.xcodeproj
# XCode opens, I press build, I come back to a newly-built Projucer.app
- Open Projucer.app, click the gear icon and SET THE PATH TO THE JUCE Modules. Everyone forgets this, nobody can get past GO and collect $200 without doing it.
- Create a new JUCE project with Projucer - just the basic for now, whatever your preferred plugin format is, just a basic template, nothing more. Save this somewhere temporary, its just to test that everything is in order. On MacOS with XCode, when I build a basic JUCE Template project, created for me by the Projucer.app, it puts the plugins in the right place on my system - I can also even just hit Debug, and XCode will ask me which DAW I want to use to debug the plugin – I choose REAPER, because REAPER kicks ass. YMMV.
- Once this is done, try to add the iOS or Android target for your test template plugin, and get that working next.
Really, all of this is pretty easy as long as you practice good $PATH hygiene methods and keep yourself sane by doing things methodically …
EDIT: Also, you’ll get a lot more assistance if you provide more info. We’ve all been frustrated at things not working like it says on the box, but in this case there are enough of us who are really, really productive with JUCE, that its not the framework - its the user. Take care to not overwhelm yourself with frustration, and also not to spread that to us. We want you to experience the joy of JUCE, because its real.
Running MacOSX, trying to target any plug-in formats. preferably all that ones that JUCE can handle; but VST3 and AAX are a priority. (lately have been solely testing with vst3, anything would be acceptable at this point), DAWs are Ableton Live 10/Pro Tools 11/REAPER(latest).
I got to the point where I could run a template plug-in as a standalone application, and it would be installed in the correct folder as a vst3 with all my other plugins, most importantly Ableton displays the “GainPlugin.vst3”/“NewProject.vst3”/“NoiseGatePlugin.vst3” name briefly as it scans, but it’s invisible in the DAW browser.
- I originally had installed the framework directly from JUCE. Downloading from github gave me the exact same result but thank you for that.
- Building the Projucer.app results in one issue, but the build succeeds:
ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk/System/Library/Frameworks//QTKit.framework/QTKit.tbd, missing required architecture arm64 in file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk/System/Library/Frameworks//QTKit.framework/QTKit.tbd
- Opened the Projucer.app from the file browser, I don’t know whether it’s better to just run it in XCode or click on the .app- anyway, I only recall seeing a gear icon after a JUCE project has been created. Couldn’t find one before that. Hoping you meant “Global Paths…” in the menu bar dropdown when clicking on “Projucer.” That’s what I did, and set the path to the modules. Although, it is set correctly by default- and this was the case before.
- Created a new JUCE project from the Plug-In>Basic template and saved it in my Documents folder. Clicked Save & Open with IDE- XCode Opens and I build it. At this point plug-ins are installed but they’re going to the ~/Library, whereas I need them to go to the /Library. (no ~) I have tried changing Ableton’s scanning path to this location and the plugin is still invisible. (Clearly shows the name “NewProject.vst3” in the progress bar- and no errors arise) And in XCode, I see a Debug menu, but not an actual Debug button.
- I do not know the relevance of this step
Things that might have happened:
1.) AU will only show up after a restart or when running
killall -9 AudioComponentRegistrar
2.) Early versions of Ableton Live 10 didn’t support VST3 yet, only VST
3.) AAX needs to be codesigned and wrapped with the PACE tools for iLok, otherwise ProTools will ignore it
AAX and iLok makes sense, just worried about VST3 for now. Most of the plugins I use in Ableton are in fact VST3.
The NewProject.component was placed in the correct spot- but Ableton can’t read it I guess
.component is an AU, not a VST3
It sounds like there may have been scanning errors. I would try running pluginval on your plugin.
ChatGPT even failed at the most basic task I could imagine
Least surprising thing in this thread
when scanning for VST3s, pluginval crashes at exactly the same point as simply running it in AudioPluginHost. Set aside my JUCE plugin, if it tries to scan my actual VST3 folder with all my stuff then it crashes upon trying to read the first plugin, every time. Opening it again reveals the plugin that it failed to read, and it isn’t a specific one- just the first one it tries. (This is consistent with both pluginval and AudioPluginHost) Attempting to scan the specific VST3 folder that my JUCE project is in results in an immediate crash, and no reference to the plugin upon reopening.
Amazingly, scanning for AU plugins resulted in a small error but mainly all the .components were able to be read by pluginval, including NewProject.component (did not restart or killall) + AudioPluginHost itself takes its time trying to scan the AUs but it’s a much slower crash. Ended up restarting and that didn’t change anything.
Thank you for all of your time and help so far.
Can you run pluginval and/or the Audio Plugin Host with a debugger attached so you can see at exactly which line they’re failing?
You’ll have to checkout the code and build them locally and then run them from your IDE like you would any other app to attach the debugger. You’ll likely hit an assertion somewhere that’ll hopefully tell you what’s going on.
Is it possible that you are building for the wrong architecture (ARM vs Intel)?
I’ve just tested the Projucer → Ableton build process and it worked.
Few things to check:
Does your xcode target selection look like this?
In Ableton, are you using the correct VST3 folder? Projucer will put them in ~/Library/Audio/Plug-ins/VST3, make sure Ableton is also looking in this folder:
Did you ever figure out the error you recieved on building projucer in xcode? I get the same warning: Showing Recent Issues
'/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit.tbd': tapi error: missing required architecture arm64 in file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit.tbd
I only found this error referenced in one other place on this forum. I tried to resolve, but I can’t find the option to include arm64, and I don’t know if I even need to