AU Lab as custom executable in Xcode


I just moved to 10.5 from 10.4 (phew).

Previously (in 10.4) I could add AU Lab as a custom executable in Xcode and use “Build and Go” to launch a plugin for debugging.

Now (even with the demo plugin) in 10.5 the plugin isn’t recognised when Xcode launches AU Lab. I can quit AU Lab and relaunch it manually, but of course the debugger is no longer attached. I’m guessing that it seems to be that the plugin is not quite finished being copied into ~/Library/Audio/Plug-Ins/Components/ before AU Lab is launched.

Anyone got the same thing or a workaround?

OK, answered my own question… my assumption was wrong!

It’s a 64 bit issue, AU Lab launches in 64 bit mode from the command line (i.e., from Xcode) but in 32 bit mode by default from Finder:

So I did this:

  • Duplicated AU Lab (so there’s a AU Lab copy)
  • Opened Terminal
  • cd /Developer/Applications/Audio/AU\ Lab\
  • lipo AU\ Lab -remove ppc64 -remove x86_64 -output AU\ Lab

The duplicate AU Lab is now 64 bit free and I set this as the executable in Xcode instead of the original AU Lab. It works.

Thanks for listening…!

Nasty, that’s the sort of irritating problem that you can spend hours tracking down…

Good news though - I’m nearly ready with my Cocoa port, so you should be able to build 64-bit juce apps soon. I’ve got most of the main functionality working, though I’ve not started porting the different plugin wrappers yet. Hopefully that won’t be too much of a nightmare.


BTW. I’ve just updated my custom wrapper to include the recent(ish) changes:


getParameterUnit() - using AU unit constants for now

… to the plugin class (AudioProcessor subclass) code.

It just allows parameter ranges beyond 0…1 so that “correct” automation values show up in Logic (for example). No idea if this is worth it, considering the other wrappers, i.e., does VST support actual values or just 0…1?

I think there might be some stuff in the later VST spec to allow different parameter ranges, but I’ve not looked at it in depth.

Splendid, thanks!! I need these badly… But the link above doesn’t point to anywhere good…?

  • A

Yes, I’d updated the project to use the Cocoa stuff so it’s an .mm now, look in the parent directory:

…or checkout the whole project from its root:

BTW my method is not very efficient in terms of accessing the params, there are other - faster - methods around discussed on the forum.