Slashdot Mirror


Building A Multi-Room MP3 Server?

Jason Peacock asks: "Say you have a house set up with multi-room sound already (speakers in each room, central multi-zone tuner, control panels in each room) and it's also wired for a computer network. You'd like to add the ability to play different MP3's in each room. First thoughts are to install a server, put a sound card in for each zone, connect these to the zone tuners, then get some software that can play multiple MP3s, outputting them to different sound cards. Or just run multiple instances of an mp3 player, each instance configured for a different sound card. What's the best way to control this using remote terminals (Win2k boxes) in the house? Final challenge: can this be done with Win2k on the MP3 serving box? I'm interested in hearing both solutions (Linux & Windows)." If computers will be running in each zone, why not have an MP3 player on each which can take control of its speakers and play MP3s streamed from the central server (each zone would have its own port). This shouldn't be too difficult to implement and should work with any combination of operating systems that support streaming servers and clients. Anyone else have other solutions?

9 of 14 comments (clear)

  1. Interesting... by cluening · · Score: 2

    I was just looking around Diamond's site and found this page describing some new Rio product they are working on. It sounds like it will do much of what you are looking for. However, it seems that it works over phone lines, which has always seemed a little odd to me... Either way, it might be worth looking into.

    RioReciever

    --
    Posted from the wireless couch.
  2. MP3 jukebox... by cluening · · Score: 2

    I've got a little pentium 166 that is serving as my mp3 jukebox, and it is doing well. It is running Linux as its OS, has a 200 meg hard drive to hold the basic stuff to get it running and uses Samba to mount my mp3s from my main linux box. Why samba instead of nfs? So I can easily mount other peoples mp3s too. It then has thttpd running on it with a few scripts serve up a listing of what mp3s I have available, as well as the tracks on any CD that may be in the cdrom (looked up with cddb). Xmms running in a VNC session does the actual playing of the music, meaning I can control it from anywhere I want, and the nice Xmms::Perl module allows complete control of it from a perl program. Sometime I plan to put some icecast abilities into it so it can stream to other people, which would make the multi-room thing possible. In the end, it all works rather well for random hardware I managed to pull up.

    Take a look at it at: arlo.dhs.org

    --
    Posted from the wireless couch.
  3. USB Sound by SEWilco · · Score: 2

    Consider a USB sound device. You won't have the IRQ conflicts involved with multiple sound cards. You'll have to figure out how many sound interfaces you can put on a single USB bus...but many desktop USB cards give you two USB buses, which should allow coverage of quite a few rooms..

  4. Re:Some ideas... by SEWilco · · Score: 2
    You mentioned X10. I'll point out that the X10.COm "Free FireCracker" ($5.90 shipping) is transmit-only -- the computer can only transmit X-10 codes through the serial port. To have a computer listen to X-10 codes you need one of the other computer interfaces, one which lets the computer listen to and respond to X-10 signals.

    With a computer monitoring X-10, you can have radio-linked remotes or wired X-10 switches sending codes for the computer to interpret, such as "Next CD", "Next Track", or "Say Menu".

    A computer does not have to monitor if you're speaking directly to X-10 devides, such as using X-10 relays to do switching.

    X10.Com also has assorted other home audio/video products, particularly wireless links (it's not clear if there is more than one "channel" nor if receivers can be tuned between "channels"). There also are some ways to send "remote control" signals around the house -- apparently the Anywhere 2000 Remote sends both IR and RF signals, but there also are IR repeater devices available for other remotes. Incidentally, if you use this referall link you can get a coupon for a discount from most of their items.

  5. Some ideas... by Vrallis · · Score: 2

    This is an idea I've been throwing around for a long time now, and have planend it a bit, but not used it.

    First off, I planned on two interfaces. One would be a modified version of the myriad of CGI based software for building playlists. You can't get more cross-platform than a web page, although in my case that isn't needed (all machines in my house run Linux primarily).

    The other interface was going to be X10 based. Both their MouseRemotes or any of their wall-panel type devices would work well.

    I've tinkered a lot with IBM's free ViaVoice software RTK/SDK's under Linux, and it is far better than any other TTS I've tried, including Lucent's online setup. I was going to make a voice readout interface for the remote controls.

    As for hardware, I was going to do the same...a simple, central machine, with a crapload of sound cards in it.

    In my personal case, I'll probably do this with my current system when I 'retire' it. K62/450, 128MB ram. I intend to get a 60GB maxtor for it (only $269 each locally, and I get 21.4MB/s transfers on it on a Gigabyte slot-A MB at work), and also use it as my central NFS server for other purposes.

  6. MP3 Players and the like by jdevons · · Score: 2

    A good spot to check for the latest MP3 Players is: eBuyers or eBuyers MP3

    --
    I do everything the voices in my head tell me to...
  7. sounds pretty basic by Jose · · Score: 3

    looks like you already answered your own question..one server, multiple sound cards, multiple mp3 players.

    The tougher question is how to intelligently select different playlists (or even songs) for different rooms on the fly. ie The person sitting in the kitchen wants to hear their new Tragically Hip album during dinner..how do you select that? (with ease)
    here's one answer (to start off)
    have a seperate playlist for all the different bands you have in your MP3 collection..press a button on your remote control to say you are choosing playlists, now use the numbers on the remote (like a phone pad) to get to the correct letter (in this case "T"), have the mp3 server say the name of the band, and you accept or reject the names until you get to the The Hip..(still kinda slow and painful)
    2)
    have some sort of PIN code that each person in the house has, so when they enter a room, punch in their PIN, their playlist pops up...they have a couple preselected playlists that they can then shuffle through to get to the one they want. ( alot of initial setup)
    3)
    if their are computers running in each zone...piss easy, they can select the music.

    as a side question, how are you guys handling the wiring for multi room music? I am really looking to go wireless, but haven't found a good system yet. Any good DIY stuff? And any recomendations for recievers to control the multi room speakers?

    --
    The basic sleazeware produced in a drunken fury by a bunch of UCBerkeley grad students was still the core of BIND. --PV
  8. Serial LCD + keypad by SEWilco · · Score: 3

    You could put this Serial LCD+ in several rooms. Then you can control the computer through serial ports. Add a case, power supply, and a 4x4 keypad.

  9. Distributed vs. Centralized playback by EMIce · · Score: 3

    There are really two approaches to this problem. You can put a PC in every room or use one PC and run speaker cables to the extra rooms. Let me explain.

    For the first approach you would likely need ethernet wiring for the whole house and a PC in every room. This is not very practical and causes a lot of clutter. I do this with 4 PCs. I have samba or windows servers running on every machine so mp3s from any machine can be accessible from all over the place. Samba really ties things together, I recommend it if you will be mixing operating systems. I'd also recommend getting a mini-keyboard and trackball for every room. Or, if your a programmer, download IBM's ViaVoice SDK and whip up some voice control software, it's not that hard and you could hide the PC in a closet. Very nifty


    Even niftier - use one main server and run speaker cables to every room from your amplifier. You will need to devise some kind of central control mechanism of course. Here's where my kinda but not so far-fetched idea for a dream setup comes in. I'm not sure what the wireless networking options are for the palm and visor, but this idea could really use such a thing. You'd basically write some software for the Palm that talked over the network to your server, which would play the mp3s. Palm apps are written in GNU C, so it would be pretty simple to whip up this little app. The wireless ethernet card is the only missing linked. Anyone know if such a product exists? There's always the Palm Ethernet Cradle. Someone would have to write a daemon that would listen in for play requests. Some commands the daemon might listen for from palms:

    "ls"
    "cd /home/emice/mp3/Cake - Motorcade of Generosity"
    "!play |(Cake) - Ain't No Good.mp3| zone4"
    "!stop zone4"
    "master volume 233 zone1"
    "status zone3"
    etc.. You could even telnet to the servers port and issue these commands from anywhere :-).

    For multi-zone use you could easily rig up a really up your parallel port with a relay controller to switch zones among the multiple sound cards. A relay is simply electronically controlled magnetic switch. A darlington transistor followed by a relay on each pin of your parallel port would allow for 13 electronic switches. Switching a relay is too much load for your parallel port, so it would switch the darlington using a small current and then the darlington would switch the relay since it requires a larger current. You can get cheap $2 IC chips with 8 darlingtons in them. And programming the parallel port for this kind of application is pretty simple too, it's just a matter of setting the right bits to put a voltage difference on a particular pin. Check the Linux Howtos, there is one on Parallel Port Programming.

    This project could get pretty interesting. If I had a palm and the time, I'd already be working on this, but like many people here I've got a lot more ideas than time to work on all of them. I'd love to see something like this pursued though.

    emice