Recently, I have become enamoured by the idea of whole home audio. And when I say enamoured, let’s be clear what I’m actually talking about: I mean I’ve become obsessed by it.
Here’s the thing though: I’m not obsessed with the functionality. It would be nice to be able to play some music and have it come out of all the speakers in the house (without running cables all over the place), but what I’m actually obsessed with is the price of systems that can do this.
The most popular system for whole home audio (or at least the one against which others are apparently measured) is Sonos. In my ideal setup I would want to be able to play music in the living room, kitchen, office and bedroom. To get the Sonos hardware necessary to build the system I’d want (including surround-sound capable hardware in the living room for when we watch TV) I’d have to spend about $3,000, and I’d have to throw out all our existing audio equipment for not being compatible.
It’s simply not worth it, in my opinion.
There are alternatives to the Sonos system available, of course, but this kind of system seems to be primarily the domain of high-end audio manufactures whose wares are priced beyond what I would consider sensible given my needs.
So, I’ve decided not to buy a whole home audio system at all. I’ve decided to try and build my own.
Enter the Raspberry Pi.
If you’re not familiar, the Raspberry Pi is a credit-card sized computer that costs about $40. It has a 700MHz ARM processor and 512mb RAM. It’s not powerful, then, but it runs a Linux distribution and is designed to be a platform for electronics projects.
To start off with I’m going to buy three of them – one for sending audio and two to receive it. I’ve read about people who have managed to get a setup similar to the one I want working, and I’ve read about many, many more people who came across challenges they found insurmountable and gave up. The nice thing about the Pi is that I can think of a million uses for it, so if I end up falling into the latter category at least I won’t feel like I wasted my money.
There’s some Linux software available called Pulse Audio, which will be the basis of my project. I’ve heard of Pulse Audio before because it’s the audio subsystem you find in many Linux distributions. What I didn’t know until recently though is that it’s capable of taking the audio that would normally be output to the computer’s speakers and sending it instead to another computer (or several other computers) on the network to be output there.
From what I’ve read online the people that have managed to get this working have done so on a wired network, and they’ve found that if they try and switch to a wireless setup then their router is flooded with audio traffic and can’t cope. This is a problem for me because wireless is one of my requirements, so my plan is to use a dedicated WiFi network for the audio: the sender will have two USB WiFi dongles attached, one to connect to the existing wireless network in my home for access to my music library and the internet, and a second to connect to an ad-hoc network used to communicate with the two receivers.
If I’m able to get this setup working then I have some plans for extending the system and building additional functionality. Watch this space!