As a user and reviewer of software it's rare to find an application that focuses entirely on performing a single task, and performing it well. All too often our software bloats with unnecessary features and options to appeal to a wide audience, increasing complexity and hogging valuable system resources. Rogue Amoeba's Airfoil 3.1 is that rare program that takes a complex task, makes it drop-dead simple, and includes only what's absolutely necessary. Airfoil is a near-perfect application that's razor sharp in its focus, and Zen-like in its simplicity.
One of the more unusual features of Apple's AirPort Express Base Station is AirTunes, a protocol that enables any computer running iTunes to stream music to an AirPort Express connected to a stereo. When it was first released, AirTunes worked only with iTunes and supported only a single AirPort Express at a time. Many users, myself included, immediately saw the potential to use the relatively inexpensive AirPort Express to stream synchronized music throughout our homes, replicating the functionality of whole-home audio systems that cost thousands of dollars.
Airfoil was born out of the demand for a critical missing feature in AirTunes: the capability to stream from applications other than iTunes. The first version did just that - it brought AirTunes-like streaming to other applications. Version 2 then closed the gap on another valuable feature - the capability to stream to multiple base stations at once. Although Apple later added support for multiple device streaming, AirTunes is still limited to iTunes and still supports streaming only to the AirPort Express or Apple TV. With the current Airfoil 3.1, Rogue Amoeba has extended beyond just the AirPort Express, making it possible to stream synchronized audio to Macs and PCs (using client software) along with Apple TVs, and AirPort Express base stations.
I was an early adopter of Airfoil 3.1, but rather than rehashing the straight reviews (like Macworld's excellent coverage) I'll walk through the features as I describe how I use Airfoil here in my home. It's one of those applications I use on a daily basis and find indispensable. In fact, I've designed my entire home audio setup around it.
I originally purchased an AirPort Express to use as a wireless access point when I travel and to stream music from iTunes to our stereo. I've been a subscriber to XM Radio for a while, and the desire to stream XM audio drove me to purchase Airfoil 1.0 initially. I connected my XM radio to a Mac mini through an iMic USB audio adapter by Griffin Technologies, and used a free application also by Rogue Amoeba called LineIn to output the audio to Airfoil, and thus to my AirPort Express connected to the stereo in our living room.
The configuration worked well, but was hobbled by a few limitations. First, although Airfoil could also output audio locally, it wasn't synchronized with the remote speakers. Local audio would play just a second or so before the remote speakers. Normally this wasn't a problem, but if we were entertaining I had to make sure I turned down the volume on the Mac mini or it would annoy anyone walking down the hall past that room. The setup also required an AirPort Express for every location where we wanted audio. Ideally I wanted to stick the Mac mini in a closet and stream to whatever Mac I was working on at the time, connected to desktop speakers, and just output it with the rest of my system audio. I work at home and like being able to control mute and volume from my keyboard. When we later added a second AirPort Express, I also noticed a tendency for dropped connections and audio to drop out of sync.
I enhanced my basic setup with a little simple programming. Airfoil supports AppleScript, and I was able to make a Web page on the Mac mini that would execute an AppleScript that let me switch audio sources and toggle streaming to each AirPort Express. If a connection dropped I could reset it by going to that Web page from any browser in the house (including my Sony PSP).
Airfoil 3.0 solved nearly every problem in the previous versions and added significant functionality. It improved synchronization, which also seemed to improve connectivity. I have yet to notice any synchronization issues between multiple AirPort Express units, and connections seem more stable. Version 3.0 also added full synchronization of local audio with the remote speakers so the audio from my Mac mini synced perfectly with the streaming audio.
The most exciting feature of 3.0 was the addition of Airfoil Speakers - a standalone client application running on a Mac or PC to accept audio streamed from Airfoil. Before the introduction of this feature I was unable to include my desktop speakers in my home audio setup. It seemed silly to purchase another AirPort Express just to stream audio from my closet to the laptop five feet away, and I found myself sticking the XM radio on my desk during the workday, and connecting it to the Mac mini if I wanted to stream it to the rest of the house. With Airfoil Speakers I now stream XM right from the radio to my laptop, which is usually connected to a pair of desktop speakers (although XM offers online streaming, the quality is materially lower).
Another welcome feature, available since version 2.0, is support for automatic connections. In the Airfoil preferences you can designate targets to connect to automatically. This has reduced the need for my custom Web page, since Airfoil now automatically connects on launch when my laptop or AirPort Express units are on the network.
One last feature I haven't used much is remote audio streaming of video content. Due to the delay of sending audio wirelessly, it's difficult to keep the audio and video from a DVD or other source synchronized. (In fact, iTunes won't stream the audio for a video to an AirPort Express, presumably for this reason.) To work around this problem, Airfoil now includes its own video player. While you can't use the default DVD Player, the embedded player supports all major video formats.
But Rogue Amoeba didn't stop there. Soon after the release of Airfoil 3.0 they released version 3.1, which added support for streaming to Apple TV. If you use an Apple TV, you no longer need to stuff an AirPort Express behind your stereo rack. Sure, the Apple TV also plays iTunes audio, but now you can synchronize that across multiple rooms.
I hate to admit this, but when we had a new house built last summer I designed our wiring around Airfoil and AirPort Express units. Rather than a whole home system, we just put ceiling speakers in our living/dining room and on the outside patio, wired to the entertainment nook in our family room. We skipped extra wiring to the upstairs or bedrooms, knowing we could just add AirPort Express units if we wanted. We use one AirPort in the family room to cover all the downstairs speakers, and one upstairs in our bar area connected to a small shelf stereo system. I have some home automation software that includes a Web interface for iTunes (Indigo by Perceptive Automation), that, combined with my own AppleScripts, lets me change sources and choose songs through my iPhone or any other Web browser. For the cost of a Mac mini (a really old one), two AirPort Express base stations, some cheap in-ceiling speakers, and Airfoil 3.1, our guests are treated to perfectly synchronized, whole-home audio that I can control from my phone. How cool is that?
Airfoil is also filled with those little touches that really polish an application. The software itself is simple and respectful of screen space, and can be hidden in the menu bar. The icons for each output device or computer represent the nature of that system; a PC icon for a PC, laptop and desktop icons depending on the Mac, and different AirPort Express and Apple TV icons. You can control volume by output device or link everything to system audio, and it includes an equalizer and robust AppleScript support.
The only problem I've noticed is a lack of consistency with the automatic streaming feature. It will connect to all devices when Airfoil initially launches, but only reconnect to Airfoil Speakers devices as they come on and off the network through the day.
As for the future? It's no secret that with the release of the iPhone SDK, Rogue Amoeba is thinking about bringing audio streaming to your pocket. That might be enough to make me finally break down and get one of those overpriced iPhone docks with speakers for the bedroom.
Airfoil 3.1 is available as a free trial for Mac OS X and costs $25 for a full license, or a $10 to upgrade from a previous version. A version for Windows 2000/XP/Vista is also available.