Pulse Whole Home Audio

What is it?

The Pulse Whole Home Audio system is a project I started about a year and a half ago to bring music to every room of my house in any way I wanted. Every room can listen to different music, or listen to the same music (synced) as any other room. I (and my gf who loves it) have been using the system for more than a year now and it has proved very reliable and functional. It is definitely no frills.

Please keep in mind that I am not a PHP or python or web developer by trade, so I do not know what the appropriate coding standards are for these languages. As is evident in the code I have learned as I have coded. The result is not pretty, or well architected (working on it) but it works very well. I am definitely open to feedback or suggestions on style! Patches are also welcome!

Features

  • Arbitrary number of audio zones and players, each zone can listen to anything it likes
  • Basic alarm clock with snooze
  • Web interface for all controls (I use n800 internet tablets)
    • Zone/Player selection/volume is custom UI
    • Player UI is provided by phpMp
    • Alarm clock is custom UI
  • x10 integration for powering on/off each amp in the rack of amps you need
  • x10 control listening for playback controls as well as snooze button
  • Simple vnc startup scripts to improve web speeds on slow devices
    • vnc interface allows usage of pandora/last.fm/etc for playback through zone1

Tested System Requirements

  • Ubuntu 9.10 desktop
  • Pulseaudio 0.9.19
  • Apache 2.0
    • PHP
  • Python
  • MPD
  • Heyu (optional for x10 control)
  • tightvncserver (optional if your controllers are lacking cpu power)
    • vnc-java
    • ratpoison
    • seamonkey (any lightweight browser is fine)
  • icecast (optional for listening from anywhere but home)
    • darkice

Installation/Usage

I have now gone through the installation (which is far from quick) on 2 different machines. I attempted to distil the lessons learned into an InstallGuide. Hopefully as I fix/improve things the install will get easier.