iOS AudioUnit - wait what?

Does anybody have experience with AUs on iOS?

I understand we can now compile our plugins as AU’s for iOS and sell them on App Store, but what is it really?
Do we need to bundle/deploy it with a App somehow or will it automagically also run as a standalone app?
Is there any good Apple links with more information? (google didn’t give much insight)

Here’s how it works with JUCE 4.2. Also check out examples/AUv3Synth, it’s an example app we put together that illustrates all this.

  • Enable AudioUnit v3 plug-in format in the Projucer settings
  • Add an iOS exporter

Now you can compile your audio plug-in for iOS. It will create a Standalone app target and an AppExtension target:

If you compile and run that Standalone app on your iOS device, it will run your plug-in with a minimal standalone wrapper around it (essentially a full-screen app window and audio/MIDI input+output hooked up automatically). You can also customise this standalone no-host view so it looks different from the usual plug-in view if you like (adding a keyboard component and what not).

But the main feature is that once you run that app on your iPhone/iPad, it will automagically register the AppExtension version of itself. From that point on, this AppExtension (the actual plug-in) will be loadable on AUv3 iOS hosts like GarageBand and Cubasis.

If you have a JUCE licence, you can then go ahead and sell your app on the App Store!

Ideally this iOS port should even work out-of-the-box with your existing plug-ins. It’s pretty cool actually. Have fun!

3 Likes

Does JUCE automatically recognizes the iOS Touch Controls?

Don’t know… what’s that?

If you mean gestures, then no. That’s a feature we’d love to add but didn’t have the time to do that yet.

Yeah the gestures. That would’ve been cool

Yeah. Some day. Hopefully soon :slight_smile:

https://developer.apple.com/videos/play/wwdc2015/508/

You can also customise this standalone no-host view so it looks different from the usual plug-in view if you like (adding a keyboard component and what not).

I wanted to ask how to customize it, but found it. Here’s how:

  1. Add the line JUCE_USE_CUSTOM_AU3_STANDALONE_APP=1 to the Extra Preprocessor Definitions in Introjucer
  2. Add the line START_JUCE_APPLICATION(YourApplication) somewhere in your code, where YourApplication is your custom subclass of JUCEApplication.

Is the AUv3 feature doesn’t supported now in Projucer ? I can’t find any checkboxes with “Build AudioUnit v3” for XCode(IOS)

My Juce ver: 6.0.7

Thanks!

In the main settings page for a plugin project, the “Plugin Formats” field has an “AUv3” checkbox (you may need to click the disclosure button at the bottom of the plugin formats field in order to reveal the checkbox).

Thanks Reuk!. Found it in new project: “Plugins → Basic” project. Looks like with my current “GUI Project” I can’t do this. Anyway it’s fine.

Yes, that’s expected. A GUI Project is a project built as a standalone application, meant to run on its own, while a plugin project is meant to be a plugin that is loaded by another application – technically these are two very different things, so you can’t just turn a standalone application into any plugin format.

But in case you need a standalone version of your plugin as well, you can add a standalone application “plugin format”, which will automatically build a small standalone application that does nothing but loading your plugin so that the user can use it as if it would be a standalone application :slight_smile: