I've been a bit stymied on how to start this review off, so I'll run all three of my potential intros by you:

1. To the guy who got upset by my review of I Dream Of Wires, in which I said all the music in that documentary film sounded kind of boring and too similar to me — I'm afraid I still feel the same way. On the other hand, the music I've heard from the online community using the $15 Audulus iOS app is much more interesting and varied. Moreover, on a philosophical level, I'm stoked by the fact that lots more people can afford this app than an actual analog modular synthesizer.

2. Does anybody remember Turbosynth, an icon and GUI-based synthesis application for the Mac that Digidesign (now Avid) first released in the late '80s? It was super cool and easy to use, and it implemented a lot of different synthesis algorithms in software, allowing users to port synthesized sounds to a hardware sampler. I'd been looking for something similar without success, until I dug into Audulus.

3. My last semester of college in 1983 was completed at Stanford University Center for Computer Research in Music and Acoustics (CCRMA), and I remember spending an entire summer programming FORTRAN code into a big mainframe computer in order to get a few seconds of sound out of the computer. An iPhone or an iPad running Audulus completely blows that mainframe out of the water with every benchmark possible. Moore's law is crazy! I can't imagine what that mainframe at Stanford cost! (Ironically, one of the computer music compositions of that era by CCRMA Founding Director and FM synthesis inventor John Chowning was titled "Phoné.")

So, what is Audulus? Audulus is a modular music synthesis and processing app for iPhone, iPad, and Mac. It can be likened to Turbosynth, the early Digidesign program, but it can also be compared to music programming environments like Max, Csound, and SuperCollider. Wikipedia has an excellent overview of this concept and lists some of the available software environments.

Unlike a typical plug-in or virtual instrument that locks you into whatever the programming team decided would work best for the particular EQ, compressor, synthesizer, etc., an audio processing or programming environment allows you to create your own instruments and effects, either from scratch or with modular building blocks. For example, in SuperCollider, you'd type in a line of code to create a sine-wave oscillator:

{ SinOsc.ar(440, 0, 0.2) }.play;

Higher-level modular environments use graphic elements and pre-coded modules to do the same thing, so it's much easier to get started and create and process sounds than it is with a code-based system like SuperCollider or Csound. The granddaddy of modular/GUI environments is Max, currently maintained and published by Cycling '74. It's a mature, stable environment, and it's very powerful and versatile. There's not much you can't do with Max. But it costs $400 and won't run on an iPad. I'm pretty committed to the iPad as an instrument and synthesis environment, and $400 was a bit of a barrier for me as a "re-entry level" tinkerer getting back into software synthesis and coding. I looked pretty seriously at CSound and SuperCollider, but ultimately, I liked the fact that Audulus was graphical, affordable, and both iPad and Mac compatible. But, before I move on, I should point out that Audulus (or any graphic interface) can be much more clunky than a code- based system. For instance, to create an additive synthesis module with 15 harmonics in SuperCollider, you need only these few lines of code:

SynthDef(\addSynthArray, { arg freq=300, dur=0.5, mul=100, addDiv=8, harmonics = #[1, 2, 3, 4, 5, 6, 7,8,9,10,11,12,13,14,15], amps = #[ 0.30136557845783, 0.15068278922892, 0.10045519281928, 0.075341394614458, 0.060273115691566, 0.050227596409638, 0.043052225493976, 0.037670697307229, 0.033485064273092, 0.030136557845783, 0.027396870768894, 0.025113798204819, 0.023181967573679, 0.021526112746988, 0.020091038563855 ];

The same function in Max or Audulus would be a fairly complex, visually busy patch. But the upside of this for people who are more graphically-oriented like me (and other non- mathy type folks) is that it's much easier to drag oscillator and filter modules around a screen and connect virtual patch cables between them, than it is to learn how to code something like a filter. This is where environments like Turbosynth, Max, and now Audulus shine.

Before I move on, I should also mention Native Instruments Reaktor. This is also a very versatile synthesis and processing environment, but from what I can tell, it's a bit harder to get under the hood in the way you can with Max and Audulus. Reaktor seems a bit more aimed at a plug-and-play audience just looking for new sounds, who are a bit less likely to actually create a new synthesizer module from scratch. Also, I was a bit turned off by Reaktor's GUI, as it felt very old-school and limited, whereas the Audulus GUI feels wide-open and built for the future.

Okay, with all that context behind us, let's start with a small sampling of what Audulus includes for building blocks or nodes, as they're called in the application. Under the Synthesis group, there are many "standard" nodes, like Osc (a virtual analog oscillator that generates sine, triangle, square, and sawtooth waves), Noise, Sample (currently Mac only), ADSR, Filter, and many others. MIDI control can come from Trigger or Keyboard nodes (and the latter can utilize both onscreen and external inputs). Add, Sub, Mult, Sin, Mod, Random, and other Math nodes implement mathematical functions. Seq16 is a 16-step sequencer. And many more nodes are grouped under Utilities, Effects, Level, DSP, Mixer, Metering, and Switch. All can be routed together and combined into new nodes. For instance, when you open up a vocoder node, it reveals itself to be a complex "super-node" using many of the above nodes.

One of the most interesting aspects of Audulus is that it blurs the line between graphical software synthesis and traditional coding approaches. With the Expr node, you can type in textual mathmatic expressions, choosing from dozens of functions and operators, to create a truly custom node — not unlike the algorithmic sound generation and composition you can accomplish in Csound and SuperCollider. For instance, you can Google the formula for John Chowning's FM synthesis algorithm, and copy-and-paste that into Audulus, and you've got a rudimentary FM synthesizer module ready to go. With a little more work, you can implement the Karplus-Strong plucked-string algorithm or digital waveguide synthesis. The possibilities are endless.

It's pretty amazing to me how powerful this app is and how good it sounds. Compare this to the mainframe computer I used at CCRMA in 1983, or the Synclavier or Fairlight systems of the time, and it's pretty great to think that this $15 app rivals systems that used to cost more than a car or a down payment on a house.

As I mentioned in my intro, Audulus is capable of some pretty amazing music — beautiful music in my opinion. Jody Golick is one of the more active members of the Audulus community, and some of his compositions (which you can interact with) are included as examples when you buy Audulus. I was pretty blown away by Golick's music and was struck by not only how wide-open the possibilities are within Audulus, but also how visually beautiful it is to see an Audulus composition play on screen. The connecting "wires" change color as signals pass through them, and the visual corollary is all you ever wanted the future to be as you watched TRON or read a William Gibson novel. An analog modular synthesizer seems hopelessly clunky, slow, and overpriced in comparison, feeling like a mid- '80s Ford, while Audulus is the car of the future running on a hydrogen fuel cell.

Lastly, the final impetus for me to choose Audulus over Max, Csound, and SuperCollider was the app's developer as well as the user community surrounding the app. Taylor Holliday is the sole owner and programmer of Audulus, and as you check out the Audulus forum, you realize he's completely immersed in further development of the app, while remaining very accessible. When people have questions, he's quick to answer and address them. It feels good to support a micro-business like Audulus, and one of the great things about Taylor is that he has embraced and welcomed the Audulus users, some of whom are clearly more knowledgeable than he is with advanced DSP and synthesis. The help and feedback he receives from the Audulus community is reflected in the frequent software updates and patch contributions. In particular, afta8, Dcramer, JDRaoul (Jody Golick), Devilock76, AlfredR, and Plurgid have posted a ton of nodes and patches to the Audulus forum and have helped shape Audulus into what it is today. It's this community involvement that ensures that Audulus will continue to grow and expand.

Me? I'm a lurker and tinkerer at best. As much as I'm fascinated with the promise of this technology, I'm too busy working on this magazine and recording records to go back and relearn how to code an FFT algorithm or make a wave- shaping module. Nonetheless, Audulus has become a unique tool for me to use in the studio, and I've learned just enough to modify patches and come up with some really uncommon sounds and processors using it. I highly recommend Audulus for anyone wanting to dig into sound design and go beyond punching presets.