Tuesday, June 11, 2013 by Tim Webb
Although the initial slide revealing Inter-app Audio in iOS 7 was easy to dismiss, having failed to materialize when they promised this in iOS 6, this time around it seems like the real deal. Several developers, frustrated with Apple's draconian NDA, are flat out breaking their non-disclosure and speaking somewhat openly about the contents of the SDK.
In an effort to get ahead of the rumors that we saw last year, and before anyone announces the death of Audiobus, JACK or even Auria, I want to compile what we actually know.
The official public word:
Leaked iOS 8 Concept Art
This doesn't really tell us a lot, and the use cases here sound confusing. What in the hell is the difference between publish audio streams and, uses the combination of those streams to compose a song? Fortunately that isn't all we have to go on!
Almost immediately after the release of the SDK an anonymous poster commented here with the official private word. This has been confirmed by three other sources, so I feel I have even better journalistic integrity posting this than CNN.
The official private word:
From the dev member center:
The Audio Unit framework (AudioUnit.framework) adds support for Inter-App Audio, which enables the ability to send MIDI commands and stream audio between apps on the same device. For example, you might use this feature to record music from an app acting as an instrument or use it to send audio to another app for processing. To vend your app’s audio data, publish a AURemoteIO instance as an audio component that is visible to other processes. to use audio features from another app, use the audio component discovery interfaces in iOS 7.
This Audio Unit phrase gives a good indication of what Apple has in mind for this technology. It is important to keep in mind that this is a technology; not a product like Audiobus and JACK. Audio Units (AU) are the plug-in format used by Logic, Apple's professional DAW, similar to RTAS, VST, AAX, etc. It is just a proprietary Apple format for plugin architecture. AUs didn't kill any of the other formats.
The inclusion of MIDI commands, and the ability to launch other apps, makes this sound like a tool for offline-rendering. For instance you could sequence your DAW app to load up an effect app, send it some audio and perhaps some parameters for how that audio should be effected, and then it collects the results. This is just an example, but that seems a lot different from what we're doing now with Audiobus and JACK today.
It is unclear at this time how this will actually be implemented or what sort of advantages it can offer. There are persistent rumors of a Logic for iPad, but the way that private blurb if phrased it sounds like they are opening this up for other DAW apps to use. Without getting any developers in trouble, I will just say that there is excitement about the possibilities here. This isn't a replacement for Audiobus, this is something else all together. The only thing we know for sure is that Apple are trying to keep their lead over other mobile OSes, by continuing to advance the platform well ahead of them all.
Update: After this article went up I was contacted by a dev I know and trust. He provided the following on the condition of anonymity.
Hi Tim, just read your blog post. I see this more as an opportunity for developers to implement a DAW hosting AU-Instruments via inter-app-audio. If I were Steinberg, that would be my focus for Cubasis. And probably the GB version will be ready for iOS 7.
There are example projects in the SDK which give the working code for this. A little host, an instrument "plugin" app and
an effect "plugin" app. Both can be instantiated from the host app like you do in Cubase, Logic whatever. Apple would not spread this
example if they wouldn't like to see this scenario.
The important point here, that this solves the sandbox problem: The sandbox concept of iOS was prohibiting loadable plugins which are not
contained in the app like Auria does. However, with the idea of inter-app-audio this is solved. The instrument app published its own AU to
any app it wants. The host checks about which AUs are there and remotely instantiate this app.
The MIDI connection and rendering is of course realtime. The only point unclear is, wether there is also support for plugin parameters,
preset loading and persistency. But this could be easily added.
So, this IS much more powerful than Jack and AudioBus, I'm sorry to say. AudioBus of course could base its own engine on the Apple technology,
but it gains nothing. In fact, AudioBus then is competing more with Cubasis, i.e. AudioBus is then just another host, and in that respect it is weak
compared to Cubasis, GB etc. AudioBus/Jack loose the technology advantage of audio inter-app streaming.
Excellent insights! Note that although this does mean Audiobus will loose its monopoly, it does not lose its uses.