Debug/Release project and Audio Unit support

I’m trying to get an empty plugin to be recognized by AULab, GarageBand and Logic.
My first issue is that I can’t select the Release build, I only get Debug builds, which is… annoying.
Then, the second one is that I get the AU component, it is recognized by Traction, but not my AULab or GarageBand, which is usually a mismatch in SDK configuration (selected SDK vs first compatible version). Unfortunately, this is not something that can be selected in the GUI, or I can’t see it.

Is there a tutorial or something like that for Audio Units?

To change to release in XCode, click on “Edit Scheme”, select “Run” and in Info tab change “Debug” to “Release”.
Unfortunately it can be selected in all targets. It seems to be sufficient only to switch a specific one, but because I am never sure, I switch them all.

It is easier to type in terminal

xcodebuild -configuration Release -project your.xcodeproj

To check, why they won’t show up, use auval:


TYPE, SUBT and MANU you have to look up in your projucer. It is usually generated as random when the project was first created. Make sure you keep them unique, if you start a new plugin as a copy. Otherwise only one of them will show up.


Thanks for the first tip.

The second one doesn’t work. auval doesn’t work as AUlab or GarageBand. The plugin passes with auval, which is why it passes with Traction. Now, I don’t even know if the Producer properly builds an Universal binary, as it seems this is also required for GarageBand.
Basically, the issue is with the SDK compatibility (it defaults to 10.12) and the compatible OS X (it default to 10.11 because I’m under 10.11). So I should be able to select in Projucer another base SDK and the compatible OS X, otherwise they don’t show up in GarageBand and AUlab, even if they validate and work fine in proper DAWs.

Don’t change the base SDK. leave that as default or the latest one. Instead change the Deployment target to what you want to support as minimum. If you change it to < 10.9 (IIRC), then you have to manually select C++ to C++11, because the default C++ for older OSX versions was C++99. And I think you have to select standard lib to the LLVM version. Might be, that this is not necessary in all cases, but it won’t hurt.

The plugin doesn’t show up in AUlab or GarageBand. This problem is known also in WDL-OL projects and can only be solved by having the same SDK and compatible OS X there. I hoped JUCE wouldn’t have the same issue.
If there is another way to solve the global AudioUnit compatibility mess, I would be glad to hear it. Do your plugins with different versions show up in Aulab or GarageBand? If so, which version of OS X/Macsierra are you using? Is it AU or AUv3?

I use classic AU, no AUv3.
I run Mac OSX 10.12, but had it also on 10.10. It worked with Juce 4.3.1 develop, I didn’t try with Juce 5.0 yet.
It worked for me in Garage Band and Logic. XCode is the latest one, 8.3.2.

One thought, what kind is it? a generative, synth or fx? I don’t know, but there might be types, that need special settings…

Good luck, I am afraid I have no other idea, what could have gone wrong in your case.

It’s a simple empty plugin.
Trying to get the universal binary version working, but the changing the architecture doesn’t work (and projucer overwrites the changes…).

Thanks for the tip for the Release, it seems like by changing the architecture, it works properly now on AUlab as well.
My Xcode .jucer file is not compatible with Windows VS, but at least I can try to use it, and I don’t have the issue with the default compatible OS X it seems. Definitely better than WDL-OL in that regard, if it works.