iOS AudioUnit - wait what?


#1

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)


#2

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

Does JUCE automatically recognizes the iOS Touch Controls?


#4

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.


#5

Yeah the gestures. That would’ve been cool


#6

Yeah. Some day. Hopefully soon :slight_smile:


#7

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


#8

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.