Over a year after it began, the whole-house-audio project is complete. 4 rooms around the house can now be filled with the sound of any of (currently) 4 audio devices thanks to a mixture of hardware and software.
The project had a slightly rocky start, with a prototype not functioning at all and partly destroyed amplifier (which was thankfully fixable by replacing a couple of components). A software alternative was considered at one point, to avoid too much expensive hardware. The hardware solution proved to be less complex and more likely to work.
The living room, dining room, kitchen and master bedroom are host to a pair of speakers each, connected to matching 240W rack-mounted amplifiers housed in my home-made full-height 19″ rack cabinet. The cables that carry the audio signals to the speakers were installed along with 24 runs of CAT5 before moving into the house.
The audio is routed to the amplifiers via an 8×8 VAMS-0808 AV matrix switcher, which allows the 8 outputs to take their inputs from any of the 8 available sources. Only 4 of each are currently in use, so there’s plenty of room for expansion.
4 audio sources are connected via simple custom-altered CAT5 cables, which simply transmit line-level signals over the existing twisted pair infrastructure installed in the house. These sources are currently the DAB radio in the kitchen, the TV in the living room, the computer in the dining room (for playing CDs) and a second DAB radio in the master bedroom.
I’ve written the software to control it all using .Net (C# of course), running on mono on linux. There are four components to this:
- To control the matrix switcher, I have written a library which communicates with the VAMS-0808 via an RS232 serial connection. The software can perform any of the operations that can be performed via the front panel of the device, apart from switching power on and off.
- The amplifiers are connected to an APC AP9212 MasterSwitch Power Distribution Unit which was bought with this project in mind. Controlling this is slightly less straightforward and not quite as elegant. The library that I’ve written for this communicates through the telnet interface of the MasterSwitch to turn devices on and off.
- Combining these two libraries is a simple web server which presents an equally simple XML-based web service. The service allows room inputs to be changed and switches the amplifiers on and off as necessary. This runs on a low-power disk-less computer running Ubuntu, hidden within the rack cabinet.
- A touchscreen web interface acts as a front-end to the entire system. The simple menu system uses iUi for a clean touchscreen-friendly design. As with the web server this runs on a low-power machine, although this one has a small hard disk and runs Windows due to technical issues with the touchscreen.
There is currently just the one controller front-end, located in the dining room. To listen to the kitchen radio, for example, all that is necessary is to select the ‘Kitchen DAB Radio’ option from the main menu, then select which of the 4 rooms to play it through – or all of them if you are going to be wondering around most of the house.
Thanks to building the web interface with iUi, the system is compatible with the iPod Touch and iPhone, so they can instantly act as frontends for audio control. A second fixed controller may be added in the master bedroom in time, if there’s enough money available. Each front-end costs about £200 in hardware, depending on what bargains can be found on eBay.
The matrix switcher supports both audio and video. Only the audio channels are used at the moment, so there is the very real possibility of using the remaining 4 output zones to connect to TVs around the house and adding some AV sources. This way it’s instantly converted into a whole-house-AV system. The video signals can be carried over the twisted pair CAT5 cables like the audio, but will require a little more hardware to preserve quality. This hardware is relatively expensive, although savings can be made by building the equivalents by hand. Following the tradition of this project, that’s probably what I’ll do. I have done it before while I was at university and it works beautifully.