iOS Audio Case Study and Interview with Superpowered customer, Crossfader cofounder and iOS audio developer, Ilias Karim.
How Superpowered's Audio SDK superpowers mobile DJ app, Crossfader.
In an interview with Superpowered customer, Crossfader cofounder and iOS audio developer, Ilias Karim shares how Superpowered helped increase Crossfaser’s performance, user experience and the postive impact it has on their users.
Tell us a bit about Crossfader. What’s Crossfader’s mission?
Crossfader’s mission is to enable everyone to remix anything.
Crossfader has done quite well in terms of app store promotion and enjoys consistently high customer ratings, what are some notable moments for you?
Crossfader has been and continues to be featured in the App Store’s music category as one its “Best New Apps”. Every one of Crossfader’s four major releases so far has received prominent placement on the front page of the music category.
What can you reveal about your install base and engagement metrics?
Since we launched in March 2013, more than a million users have used Crossfader to remix over 30 years of music.
What are some of the challenges of developing high quality audio apps for low power mobile devices?
The main challenges developing high quality audio apps for mobile devices are CPU usage and battery life.
These challenges are compounded by the hardware differences between different iOS devices. We design Crossfader for the latest generation of iOS hardware but go to great lengths to ensure that the app’s performance degrades gracefully across older generation hardware.
...more than a million users have used Crossfader to remix over 30 years of music.
How did Crossfader come about?
Crossfader is the product of intense collaboration between our team of software developers, designers, and DJ/producers here in San Francisco.
Personally, I was inspired to begin developing mobile music and DJ apps a few years ago while I began taking courses with Ge Wang at Stanford’s Center for Computer Research in Music and Acoustics (CCRMA).
Why is pro audio sound important to Crossfader?
Pro audio is important to Crossfader because not only do we want to deliver the best listening experience for our users in their bedrooms, living rooms, and on their commutes, but also to our users’ audiences in clubs and at festivals.
Thanks to the Superpowered technology we employ, when our users play Crossfader in the booth or on stage they sound indistinguishable from well-known DJs.
My research at Stanford led me to join Seth Goldstein (Founder of Turntable.fm) and the rest of the team working on DJZ.com and mobile music apps.
Before you discovered Superpowered, what tools, SDKs and APIs were you using?
Before switching to Superpowered, Crossfader relied on zplane’s élastique “efficient” time-stretching & pitch-shifting SDK, zplane’s fx::pack filters, Michael Tyson’s The Amazing Audio Engine, and Apple’s Audio Unit File Player.
Why switch to Superpowered?
We switched to Superpowered for a number of reasons.
For one, we knew it would be simpler to use a single SDK than a mish-mash of SDKs like we were before. More importantly, we hoped to decrease CPU usage from iOS audio processing and increase battery life, which was our users’ most common request before we integrated Superpowered.
What components are you using specifically to drive which part of the Crossfader app?
We use Superpowered’s iOS Audio Output, its Advanced Audio Player for loop playback, its Audio File Player for sample playback, and its high-pass/low-pass filters, beat roll, flanger and white noise for effects.
How does the Crossfader team think about audio performance and audio processing efficiency?
I like to think about audio performance qualitatively by asking, “how does our audio technology affect the user experience?” A 2% improvement in efficiency does us little good unless it also makes our users happier. We always have a slew of new features to work on, so any time tradeoff for optimizing existing
See the Crossfader App in Action
...there is no distinguishing Superpowered’s effects from the effects found on professional DJ Gear.
Superpowered’s time-stretching and pitch-shifting sound nearly transparent and its effects all sound professional.
With a bit of careful tuning, there is absolutely no distinguishing Superpowered’s effects from the effects found on professional DJ Gear like Pioneer’s famed DJM-900NXS.
What are some of performance improvements that you and your team noticed? iOS Audio latency? Sound quality? CPU usage? Power consumption?
When we first shipped Crossfader version 4 with Superpowered, our users immediately noticed the performance improvements and let us know via Twitter and App Store reviews.
The biggest improvement was a noticeable increase in the framerate of our graphics.
Crossfader 4 drops few frames on the iPhone 5, iPhone 4S, and iPod Touch 5G, rendering closer to 60 frames per second thanks to Superpowered.
In addition, we are able to run 4 beat-matched audio file players concurrently even on the iPhone 4S and iPod Touch 5G—which we were never a ble to do using zplane’s élastique SDK—in order to transition seamlessly between mashups the same way that we do on the iPhone 5 and iPhone 5S, which have far more powerful processors.
Devices also run noticeably cooler and are able to run Crossfader for longer without running out of juice,
...with the past few updates it runs smooth like a dream at a fluid 60 fps and no longer runs hot. You guys have answered all my concerns with this app and done a fantastic job keeping up and adding awesome things like FX, and the music packs are always awesome and keeping with the trends as ever...
You shared with us that you really liked the Superpowered API. What do you like about it specifically?
The programming interface to Superpowered’s SDK is extraordinarily clear to read, which helps make it easier to implement.
It is more or less self-evident what each of its classes, methods, and parameters do and any ambiguity is quickly cleared up by the excellent sample code provided alongside the SDK.
What sort of challenges did you encounter on iPhone 4 with Crossfader?
Before Superpowered, Crossfader was unusable on the iPhone 4 due to the limitations of its single core processor.
Thanks to Superpowered, we are finally able to offer our iPhone 4 users a usable version of our app (though we do recommend an iPhone 4S or iPod Touch 5G or better for the best experience).
Crossfader is superpowering its in-app purchase audio filters with Superpowered -- tell us about that.
Implementing Crossfader’s effects was a breeze thanks to Superpowered. Whereas we had significant trouble precisely timing effects while using zplane’s élastique SDK, we had no such issues using Superpowered. The effects all sounded good out of the box and all we had to do was to parametrize them to make them user-controllable along a single axis of control.
Now, Crossfader’s users are able to purchase beat repeat, flanger, and white noise sweep effects in addition to the default high-pass/low-pass filter that comes for free with the app. The feedback from our users so far has been ecstatic.
The feedback from our users so far has been ecstatic.
The programming interface to Superpowered’s SDK is extraordinarily clear to read.
Tell us how you’re using Superpowered’s open-source iOS Audio Output?
Superpowered’s iOS Audio Output is the simplest fully-functional iOS audio input and output class and as such we prefer it to the interfaces offered by The Amazing Audio Engine, EZAudio, or Novocaine (all of which are also excellent projects in their own right).
It provides access to as many input and output channels as the device hardware supports, offers configurable buffer sizes, and even works around the various idiosyncrasies of Apple’s audio implementation in just about 500 lines of code. Its brevity combined with its open source license also makes it simple to hack and maintain, should issues arise.
What you recommend anyone considering Superpowered for use in powering audio development?
I recommend that anyone developing a mobile app necessitating audio time-stretching, pitch-shifting, or audio effects try Superpowered first.
How do you feel about Superpowered support and bug squashing?
Support for Superpowered has been superb. Gábor has always been available to answer our questions and has prioritized any issues we have had with the SDK. His turnaround time resolving reproducible issues is consistently within one or two days and it’s a pleasure to work with him.