Of the many changes introduced with Xcode 4, one of the least talked about is its new template format. But while most of the existing 3.x templates were converted to the new format, somewhere during the rollout of OS X 10.7 (“Lion”) the Audio Unit templates got yanked. Fortunately, reverse-engineering the new format from existing templates isn’t all that difficult. And: once you have a grip on how the new format works, it’s a pretty straight shot to restoring the AU templates, updating them to compile with Lion and Mountain Lion, and maybe even making a few tweaky improvements while you’re at it.
Last time around we got our feet wet with SuperColliderAU, working our way through some example code and building a simple Audio Unit plug-in from scratch. This time we’re going to attempt something a little bit more ambitious: designing, prototyping and building a full blown tremolo audio effect plug-in. We won’t be taking the straight ‘do this then do that’ tutorial approach, however: our focus will be on process and tools as much as on actual building, and we’ll begin quite simply by imagining how to go about creating a tremolo effect. Then we’ll construct a suitable algorithm through trial and error, testing our ideas along the way using SuperCollider’s graph-plotting capabilities.
The combination of SuperColliderAU and AudioUnitBuilder is a wonderfully useful tool for quickly sketching out and prototyping working audio effect plug-ins. In this installment we’ll jump-start our SuperCollider setup by installing AudioUnitBuilder, tweaking it for Lion / Mountain Lion / SuperCollider 3.5 compatibility and taking a walk-through of one of the example AU projects. Then we’ll knuckle down and build our first custom plug-in.
Programming your own audio plug-ins, let’s face it, is not a casual undertaking. To even begin playing the game you need a solid grounding in DSP – along with some serious C, C++ and math chops – all tucked neatly into your belt. And that’s before you start diving into the frameworks of whichever platform it is you’re developing for. Wouldn’t it be neat if there was a kinder, gentler way into this world of streaming ones and zeros, even for reluctant programmers? Well there is, at least for Mac users.