However, our new house encompasses three floors. We'll spend lots of time on the ground floor (living room/kitchen and 'office'), but we'll occassionally use the 'hobby room' on the first floor or the room in the attic as well. Wouldn't it be nice to have access to your music on each floor?
So, here's an idea that has been forming in my mind. In each room (well, almost each room), I'll place 'audio-consoles'. These consoles are driven by a microcontroller -- with a few buttons and an LCD, the user could select a playlist or album from a central 'music server', and have that music be played in that room via the attached speakers.
On each floor, I will place a 'control unit' -- a small fanless PC based on a VIA EPIA ME6000 motherboard. This PC will be connected to the consoles via UTP cable. UTP has 8 wires in 4 pairs, which is exactly enough: left speaker/ground, right speaker/ground, RX/ground, TX/ground (with RX and TX being the signal-carrying wires of RS232 or serial communications). Note that I will not run Ethernet over these cables -- it's merely convenient to use these cables because they're available in abundance.
Every control unit will have a wireless network card to communicate with the music server -- I don't mind running cables through the walls on a single floor, but I would rather not run cables through the floors/ceilings. And every control unit will have a PCI serial card to allow more than one console to be hooked up to the control unit. Relays will allow the output of the soundcard to be 'switched' between the various consoles.
Via the wireless network, the control unit communicates with the music server, and passes this information on to the microcontroller in the consoles. When the user has selected a playlist, the control unit will use the network to get to the MP3s (or perhaps OGGs), and play those via the soundcard. By switching the relays, the sound can be sent to the right set of speakers.
With more than one soundcard (I could, for instance, add a cheap USB sound'card'), more than one console could play music at a single time -- but only if the control unit is powerful enough to handle decoding of two MP3 streams at once. This would add some complexity to the switching mechanism, but that's not beyond my capabilities.
It would rock even more if I could detect someone leaving and entering the room -- I could suspend music playback when you leave the room, only to resume in another room when you enter it. We could both have our own music that follows us around the house... But that's something for the far, far future, when I have invented Star Trek-like communicators. :)