05 Mar 2016
AUM, which recently hit Apple's app store, is an audio integration toolkit for iOS. The name works as an acronym (Audio Utility Mixer) and is ostensibly a reference to the spiritual symbol and perhaps even the trippy Coltrane album. Like the name, the app works on multiple levels.
As described in the in-depth review on Music App Blog, AUM is part Audiobus and part MiMiX. It rolls the functions of both into a single app and throws a few things of its own into the mix (ha!). I've written a few posts about MiMiX and Audiobus and, having spent a few days using AUM, thought I would share some impressions about it and how it fits into the broader iOS music ecosystem.
To get a sense for how AUM works, let's revisit the Audiobus and MiMiX setup described in Multi-synth Mayhem and see how that translates to AUM.
The screenshot above shows the Audiobus preset used for multi-synth mayhem. There are three synths that send their audio into MiMiX. Xynthesizr is used solely as a MIDI controller and is included in the preset so it's accessible via the Audiobus connection panel.
MiMiX is a simple but well-designed mixer utility for Audiobus. It has a MIDI learn implementation, which makes integration with an external MIDI controller dirt simple. Being able to control the mix with an external controller means you can focus on playing instruments on the iPad without having to bounce back to MiMiX to tweak panning, levels, etc.
Now let's look at the same setup in AUM.
In the screenshot above the Audiobus preset is almost identical to the one we used with MiMiX. We simply send the audio for each synth into AUM instead of MiMiX.
AUM provides more sophisticated mixing controls than MiMiX and also supports MIDI learn. Note the "AB IN" denoting inputs from Audiobus along with the Audiobus connection panel with playback triggers for Xynthesizr.
The above screenshot shows AUM with inputs coming from Audiobus. In addition to controlling the pan settings for each channel you can drop additional effects into the audio processing chain. Instead of bussing everything to a master channel by default, AUM supports 8 mix busses, which lets you create your own groupings of channels to control as discrete sub-mixes. In the example here we're simply sending the output from each synth to the same mix bus (bus "A") and then creating a master channel by sending the audio for that mix bus out to the speaker.
An important detail to note is that you're not limited to inputs from Audiobus with AUM. It also supports IAA (Inter-app Audio) and AU (Audio Units) inputs, covering the complete spectrum of audio technologies currently available under iOS.
Since AUM supports IAA and AU, it's possible to achieve the multi-synth mayhem setup without Audiobus. However, while this is functional, I've found it to be suboptimal, leading me to the conclusion that AUM is complementary, and even somewhat orthogonal, to Audiobus.
The relationship between Audiobus and AUM has come up as a topic in several posts I've come across. Technically you can achieve the same routing configurations with AUM as you can with Audiobus as long as the apps you're using support IAA or AU. IAA has been around for a few years now and is pretty broadly supported. AU is new as of iOS 9 and isn't widely supported. Despite being supported by many apps, IAA just doesn't seem to work as well as Audiobus in my experience. AU looks promising and would bring the user experience on iOS closer to that of laptops, but given the newness of the format we'll have to wait and see how adoption grows over the course of the year.
The main thing about Audiobus that makes it compelling is the connection panel. This may seem superficial but it's actually pretty important. Triggers give applications a hook into the connection panel allowing them to extend its functionality with custom behaviors. Remote triggers, available as part of AB Remote, make Audiobus an even more powerful tool for controlling applications that are part of multi-app production configurations.
Let's have another look at the AUM config using Audiobus instead of IAA for audio in. You can see that Xynthesizr implements triggers that surface transport controls in the connection panel. This means you can start/stop Xynthesizr from AUM, Lorentz, Thor, iSEM, or, of course, Xynthesizr itself. The panel and triggers contained within let you interact with one app from any other that's part of an Audiobus preset. The extensibility of triggers and accessibility of the panel are a powerful combination and this is a key differentiator between AUM with Audiobus vs AUM with IAA. AUM is purely a glue app while Audiobus is both a glue app and an SDK that supporting apps implement. Audiobus offers a better user experience compared to IAA.
As an IAA host, AUM should be able to trigger playback in the apps that it's hosting, and indeed, if you drop Xynthesizr into the AUM preset via IAA it will get tempo information from AUM. However, it does not respond to transport state changes from AUM so you need to start playback from within Xynthesizr itself. The AUM FAQ (see "How do I start other Link enabled apps from AUM?") calls for more developers to implement IAA host transport state but this isn't the case with Xyntheiszr (which I'd also love to see updated to support Link). And app navigation isn't quite as good with IAA because you need to pass through the host app as a hub when moving between instrument apps. AU makes instruments easily accessible from within the host but there just aren't that many apps implementing AU yet.
AUM is a well-executed app with an impressive array of functionality, and Audiobus is still an essential app for iOS music. If you've already got Audiobus and AB remote I think you'll continue to get value out of them if you buy AUM. And if you've got AUM and are wondering whether or not to get Audiobus, I recommend you pick it up; I think you'll find it's functions are additive and complementary to AUM.