Slashdot Mirror


Build a Multi-Output MP3 Server?

z80 asks: "I'm rebuilding my house and I am thinking about fitting speakers in every room of the house and pulling some massive amount of cables in the walls. I also want to control and send the output to each set of speakers from the same source, and was thinking that a PC, with 4-6 soundcards, would do the trick, and there are of course a couple of questions I have. What kind of hardware would be required to be able to stream up to six different MP3's through six soundcards at the same time ? Can it even be done? What kind of software can be used to do it? Which OS? How can it be remotely controlled? With respect to the last question, I'm thinking about mounting a couple of flat displays around the house connected to old PC's that run some sort of connection (VNC maybe) to the mp3 server." This is a topic Ask Slashdot tackled three years ago. Now, with applications like Ardour showing off the power of Open Source frameworks like JACK, it seems like building such a machine might not be as hard as it once was. For those of you who have managed to build something like this, what did you do and what hurdles did you have to navigate before things were working? How would you set up a machine to run independent audio to 4 or more rooms?

29 of 394 comments (clear)

  1. AVScience Forum by cookiej · · Score: 5, Informative

    The best place for questions like this is the AV Science Forum. Lots of people doing all sorts of home-theater/home-audio projects. Look in the "Home Theater Computers" section.

    There are several options for what you're looking to do these days. My brother is doing a similar thing, but he's using 802.11b for control (through Girder) and PocketPCs for remotes!

    http://www.avsforum.com/avs-vb/

  2. Why multiple soundcards? by someonehasmyname · · Score: 5, Informative

    Get an M-Audio Delta 410.

    It has 4 inputs, and 10 outputs.

    --
    Common sense is not so common.
  3. A Networked file server is easier by phelddagrif · · Score: 3, Informative

    I agree with the others, who have said, if you are going to include an LCD in some of the rooms, what's the problem with adding a very small PC? You could even do a wireless network, and have the terminals access the files.

    As I don't really know of anyway in which you can get five soundcards, to all function seperately, and have independant players associated with each card. I think that having a large storage server, and then some small terminals controlling smaller areas of the house, will be easier, and less of a logistical nightmare.

  4. Hundreds of feet of audio cabling by poptones · · Score: 5, Informative

    Bad idea. It's MP3... just put an MP3 player in the room and use network cable. You can buy an old Vectra (that would do this fine) for like $50. Or you can use dedicated audio widgets like the very open mp3elf.

  5. Specifying which output device by Admiral+Burrito · · Score: 4, Informative

    Most command-line MP3 players (mpg123, for example) have options to specify the sound device. This would allow you to control which room the music was sent to.

    CPU-wise, decoding a bunch of MP3s should be no problem at all; mpg123 typically uses only 1-2% CPU on a modern machine. I don't think you'll run into PCI bandwidth limits either (guestimate 1.4 megabits per second per output).

    You may need to create your own player front-end, to select songs/playlists for each room.

  6. Re:I contacted a company in the past by pVoid · · Score: 2, Informative
    Man, that's ultimate geek application. The one problem is that unless you use your computer as a home theatre (read, entire home), why would you want two sets of speakers to play different stuff, when after all, once in the air, the sounds are going to mix anyways.

  7. Re:go wireless by spirality · · Score: 3, Informative

    Wireless speakers are considered by most audiophiles to be of poor sound quality.

    This of course assumes an analog signal.

    Also if you wanted to run one song in one room and another song in another room there could be interference issues.

  8. SliMP3, baby by ScuzzMonkey · · Score: 5, Informative

    Yeah, you may be able to hack something together with a single PC and multiple sound cards in a few months of Sundays. But you could also just buy, off-the-shelf, as many of these dandy little things as you need. A single server can service as many of them as you'd care to stack up. They would be easy to add on as you require them, without having to run any speaker cable at all--a wireless bridge or a single CAT5 run works peachy. DHCP enabled, supports multiple server OSs (mine is off my Debian box but they have Windows or Mac installers as well), wireless remote, Web, or command line interfaces all supported.

    I've only got one, but it works awesome and if I ever decide I want to put a different sound system into another room, I can just buy another module and hook it up to the same server--instant access to all the MP3s and playlists that I've already created. The sound quality is great and it take hardly any resources, either server-side or network. I highly recommend it.

    --
    No relation to Happy Monkey
    1. Re:SliMP3, baby by Anonymous Coward · · Score: 2, Informative

      there are modules for the SliMP3 server that allow you to transode to MP3 on the fly from various formats, such as OGG, FLAC and wav

  9. This hasn't been mentioned.. by RoundTop-VJAS · · Score: 3, Informative
    however most modern motherboards only have about 5 PCI slots..possibly 6 at most.

    So by the time you have the requisite NIC, your video card (PCI or AGP), you are left with 3-5 slots left for audio cards.

    Then you have issues with the bus bandwidth and that many audio cards.

    People have mentioned using 3 card and use the front/rear outputs for different streams, but the cards don't work that way (or at least not without at LOT of driver coding, and no way you can easily get your audio player to recognise this)

    There are several solutions to this:

    • Use more than one machine (cheap machines in each room connected to a central fileserver)
    • Buy soundcards that have the 5 output streams (note, this is 10 outputs, but 5 streams [L/R audio for each]), but this is expensive
    • Go to a pro audio shop and ask them, they have stuff built for this.

    Good Luck

    --
    RoundTop

  10. Niles makes a good piece called Bob... by DavittJPotter · · Score: 4, Informative

    Seriously, they call it Bob. It's the ZR8630AV - and he's got a sister named Glory - the ZR4630.

    Glory is a 4-source, 6-output, 30 watts per channel audio distribution center. Check out http://www.nilesaudio.com/products/zr4630.html for more information.

    We use these a lot where I work now, and they're slicker than snot.

    --
    "If there's hope, it lies in the proles..."
  11. Re:Why only one machine? by pair-a-noyd · · Score: 2, Informative

    cat5 much cheaper..

  12. SliMP3 is the way to go... by dr00g911 · · Score: 5, Informative

    I have to admit, I'm a head-over-heels lover of my SliMP3s.

    The reasons you should be too:

    It's platform independent, but is also really tightly integrated into your itunes/musicmatch/winamp playlists. A single server, whatever your religion, can saturate the network before the server gets bogged down. This said, I recommend a Mac server, just because iTunes is amazing, and I really don't like having to deal with Linux config when I'm not being paid to.

    $200/unit, and all the playlists on your network can be streamed from one location. At 10/100 speeds, it'd take about 15-20 of the things to saturate your network, if they were all running at the same time.

    All of your libraries and playlists will be shared and distributed thruout the house. Doesn't matter if you're going to a boom box with a ghetto-wired cassete adaptor. Run cat5 to the room (cheap), and choose the most suited amplification method, from powered speakers, to a MacGyvered boom box, to a proper receiver.

    The company is super cool, comes out with feature updates constantly, and the server software is open source, should you choose to use the built-in Perl powered httpd server versus just using a remote.

    I'm not an employee of Slim Devices, just an insanely happy customer. That's a whole lot of elegance in a small, inexpensive package.

    And it plays a mean game of Tetris, gives my weather report, and does a /. ticker every 15 minutes on each unit, just because I can.

  13. Re:Audio quality? by Ian+Peon · · Score: 4, Informative

    I program these types of systems for a living. Usually, everything I work on is HUGE. To put in in perspective, I recently finished the control system in the Chuang Residence. Alfred is very much into the latest and greatest - and had a 3 million dollar home theater put in (seats 7) as well as A/V distribuition (30 zones) throughout the house (61" HD plasma at the foot of his bed!).

    So, it depends on the signal that you're routing.

    Amplified: Great! it'll probably go as far as you need it. If you're going over a few hundered feet and don't care about the quality (think outdoor speakers), you'll want to look into doing with 70 volt transformers and matching speakers. (the higher voltage will drive the signal much farther, but the audio quality goes to hell). Generally with amplified signals the farther you go the quieter it gets.

    Line level (non-amplified signal): Will often work just fine. Since it uses a much lower voltage it is much more succeptable to noise. The two biggest things to watch for are interference and ground loops. You get interference from power sources, running motors, wireless devices, etc. If you convert the signal to balanced it'll be less succeptable to interference (a balanced signal provides a ground reference). Small converters are available from several sources. Ground loops are caused when there is a voltage difference between the "ground" plane on either end of the wire. Often, you'll hear a slight 60 Hz hum. The PROPER way to eliminate this is to make sure all your equipment uses the same ground. If it's all on the same circuit in your house, then you're probably OK. If not, there are small inline devices to eliminate this as well. Look for "Hum Buckers" or "Electo-Optic isolators". Line level will go a suprising distance but you'll want a distribution amp to go over about a hundred feet. Keep in mind that the farther you go, the better chance of having noise problems.

    Digital: Bleh! I really want this to work, but I haven't seen a successfull installation with more than 20 feet of wire! I worked one job where they tried both optical and copper but couldn't get it reliably (trying at about 75 feet of signal). When the signal degrades, the audio just goes away - not quiter or noisier. It suprises me that the optical signal won't go farther - it's light dammit! The issue seems to be that the TOSLink cables are designed around a plastic core that is easier to work with - but attenuates too much over distance. Having a device to rebuild the signal every 20 feet is problematic to say the least.

  14. www.slimdevices.com by ckm · · Score: 2, Informative

    Their slimp3 and server already does this, over ethernet...

    Save yourself the hassle.

    I have had one since the first production run, and it's the best audio device I've ever bought.

    Best of all, both the server and firmware are Open Source.

    Chris.

    --
    -- I don't have a cool sig.
  15. multiple sound cards by ratfynk · · Score: 2, Informative

    Running symetrical multiple sound cards under any version of Windows or Linux is hell, I speak from experience. Although a Linux driver actually cured a cross channel hum problem I couldn't eliminate with Windows software and two SB 32s.

    I have run two Sb 32 awe's with some success back when Creative actually spent some real money on it's audio designs. However the ever present 128 live version and up craps big ones. I made the mistake of upgrading, the good old 32 awe's are now back and doing the job! (I use my PC to quickly do audio recording of musical ideas I write/play, then I mix my composed parts to check my harmonies. I also have found that recording music snipets to harddrive is a good way to preserve new musical ideas and time stamp them).

    I have an older asus p3 dual slot-one mother board with Pci and Isa slots and the sound is not too bad if you are not interested in high quality audio like 24/96 and up digital recording.

    Signal to noise is no problem for audio companies anymore, the average "music consumer" can't tell the difference anyway. The new cheap crap I've heard with p4 and newer Sb cards is not even close in quality to the older expensive hardware.

    My advice to you, if you are an audiofile, is not to use crap PC sound cards at all. Their drivers suck, their sig to noise ratios really suck on their line outs. Worse, the digital out is prone to interference interupts from within the PC, (emr caused by fans, cheap drives etc). The PC sound card is the biggest (P)iece of (C)rap ever to polute the world of music.
    Use real audio devices not crappy, hyped up toys like PC sound cards!

    --
    OH THE SHAME I fell off the wagon and use sigs again!
  16. Re:ASCII stupid question, get stupid ANSI... by Elladan · · Score: 1, Informative

    I hate to rain on your parade, but Windows is not a realtime OS. All that BS you spewed about how RT priority will make everything all perfect is just that: BS. Windows makes no such guarantee, and the process will be pre-empted and experience indeterminate latencies even with RT priority set.

    You're simply wrong. Sorry. No, Microsoft did not code their OS to support skip-free sound.

    In case anyone is wondering, Linux (at least without patches) is not an RTOS either. None of the popular operating systems are, because real time is not efficient. RT-priority threads in Linux are also not guaranteed to work. However, with the low-latency (or possibly preempt) patches, Linux is good enough for anything media-related (though maybe not for controlling surgical robots or something - you could use RTLinux for that).

    Of course, the catch with all of this is that RT guarantees only mean anything if the application is specifically designed to make use of them. Setting a program to realtime priority absolutely does not mean it'll work right. It has to be designed to use realtime priority - which very, very few apps are.

    So, to make a long story short, you, sir, are full of shit.

  17. Alcatech BPM Studio Gastro by mrbpm · · Score: 2, Informative

    BPM Studio Gastro Can output 6 independent mp3 streams with a suitable sound card(s):

    http://www.alcatech.com/

    I've been happily using their DJ software for years.

    from the website:

    The BPM Studio Gastro Features

    Sound management from one central system
    Arrange different playlists with the music of your choice and
    direct them to each of the 6 areas.
    Control your playlists, volume and sound needs for any area
    in realtime.
    Intelligent playlists
    (store titles in any order, sort and rearrange them anytime)
    Archiving of several 10.000 titles possible
    Comprehensive drag & drop support

  18. Re:ASCII stupid question, get stupid ANSI... by Morthaur · · Score: 2, Informative

    I 100MHz Pentium will barely run _one_ mp3 stream; it certainly won't do six! You can't just divide the clock speed here.

    --

    +++++++
    "Look, dear, it's a crazy hairy scary man!"
  19. Hardware solution by Uncle+Eazy · · Score: 3, Informative

    Not to piss all over the hax0r spirit, but why not look into something like the Audiotron from Turtle Beach. It's a bit on the pricey side, but it's great for serving up (actually receiving) MP3s to a stereo over CAT5 from some machine in your home.

    Uncle Eazy

  20. Replace the LM 741! by Newer+Guy · · Score: 3, Informative

    You can replace the LM741 with any number of audibly superior amplifiers. Here are some to try (in Order of quality). AD711, TLE2071, 5534 (must put a 20 Pf capacitor beween pins 1 and 8), TLO72, LF351, TLO81 (available at Radio Shack). Any of these will blow away the LM741 sound wise.

  21. Re:this is retarded by WarpForge · · Score: 2, Informative

    Like I said with regard to the costs, you have to license the music regardless. Putting it through a computer jukebox is just an expression of that license that requires further costs. Hence, you must compare straight CDs to licensed music + the media access system for a computer. You cannot compare the storage for copyrighted media to the cost of licensing the media.

  22. Re:220Euro/Room solution by BlackHawk-666 · · Score: 2, Informative

    The EPIA can do the job but they're going to sound lousy since they only have dirt cheap onboard sound. He still needs an amp in each room to drive it or amplified speakers. Amplified speakers also usually sound like crap. All in all, it's going to be pretty expensive to deliver decent audio quality to six rooms simultaneously.

    --
    All those moments will be lost in time, like tears in rain.
  23. My experiences with this... by Jon+Abbott · · Score: 4, Informative

    I have had a house-based MP3 server running over NFS for years now... My solution has been to have a stereo near each computer that has local ethernet access, and just run the output from each computer's sound card to the stereo next to it. I have customized shell scripts for Linux, FreeBSD and Mac OS X that take the best advantage of the system's ps, mpg123 and kill programs -- if you would like a copy (and instructions for use), email me.

    While this setup allows for independent songs to be played on each system (which is great for most purposes), there are times when you want to play the same song on each system -- in essence, creating a "concert" around your house. To do this, I set up Icecast on a Linux machine, gave it all of the MP3s to play, and then connect to it from each other computer via mpg123. This approach does work, but the result is less than excellent -- each connection can be timed up to a second or so off from the other ones, which creates a really weird echo effect in the house. While this can be fun for a little while (standing between two stereos you get a "live" effect from studio material), it gets old real quick.

    My proposed solution to this would be find a low-power FM transmitter that you can hook up to one machine -- play MP3s from a soundcard into the FM transmitter, then tune each other stereo to the FM frequency that the transmitter is using. I must admit that I haven't tried this, so I don't know how well it would work -- I do know that the signal would sound synchronized because radio waves travel at the speed of light. I know that Griffin Technology makes the iTrip, which is an FM transmitter specifically made for Apple's iPod. It claims to only have a 10-30 foot range though (limited by FCC regulations), so I'm not sure how well it would work. I'm sure there's a company or two out there that makes a low-power FM transmitter that would work well on any output source, in any situation.

  24. NETWORK-INTEGRATED MULTIMEDIA MIDDLEWARE FOR LINUX by Okneff · · Score: 2, Informative

    or NMM for short, might be a software option. Every piece of hardware is considered as a "node", and it doesn't matter where this hardware is located in a network. A so-called serverregistry is aware of every speaker, monitor etc and handles sources of video & audio towards desired output devices (sinks).

    From their website: "The goal of our work is to design and develop a multimedia middleware, which considers the network as an integral part and enables the intelligent use of devices distributed across a network. We are currently designing and implementing a network-integrated multimedia infrastructure for Linux (as well as other operating systems). Our unified architecture will offer a simple and easy to use interface for applications to integrate multimedia functionality. Therefore, it can be used as enabling technology for traditional multimedia applications, but also for ubiquitous computing and mobile computing. The result of our work will be made available as Open Source (LGPL and GPL). "

    As far as I know there will be a cvs repository soon, and, of course, there is no ready-to-use application for the situation you describe here. But there's a tool called "clic" which is part of NMM that can be used to connect a bunch of nodes (for example the MP3ReadNode with the PlaybackNode), maybe the way you need.

  25. Re:Yet to be fully implemented, me thinks. by mclaugh · · Score: 2, Informative

    The low cost answer is a program called Media Center. It offers multi zone playback, among other things. You can use this to control/maintain your mp3, video and photo collections, and send out different streams to different zones. If your computer has the components, it will also act as a Tivo. I use this along with an Audiotron & an Ipod, and find it works great.
    Media Center feature list.

  26. Same project, my setup by silas_moeckel · · Score: 3, Informative

    OK having done this in the last 12 months lets go over the options.

    Slimmp3 and Ethermp3nut or whatever are out there and work well for ethernet attached 2 channel audio. I went with the free as in speech ethermp3nut (right name?) as I'm handy with a sodering iron and have friends that can deal with surface mount. These along with a small amp are good for rooms that you only need 2 channels like the bathroom porches etc pretty much anything without a TV. I have 4 drops of Cat5 in every room (one per wall) and use cheap gige agrigation switches from netgear if I need more ports.

    OK now for rooms with TV's my primary concern was the TV room I places the server directly below the TV and install some metal piping to chace cables through (grounded to keep any interferience down) The only thing running analog to the TV is the VGA cable and the Svideo cable running to the receiver the audio comes off a standard sound blaster audigy via fiber to the in room receiver. Firewire and USB 2.0 got chaced up as well to run a DVD-R drive in the sterio rack for DVD/CD playback, ripping and recording. A few pairs of cat 5 are used for IR Blasters and receivers. Video is provided via a Matrox 450 Maxx one out used for the VGA to the TV and the other running svideo to the receiver in the TV Room. The TV room has server method of controling things there is a wireless keyboard and mouse, normal remote comands via lircd (more on this in a moment) a dumb terminal a Palm with IR and any laptop that can get on the 802.11g network. Finialy I'm currently working on adding speach recognition for the complete hal look :)

    Other rooms have a pretty standard key pads and screens that work via serial 3 wire. I hacked together a little application to scroll whatever song is playing information and navigate premade playlists that are then passwed back to mpg123 to play it's not perfect but works ok next revision is speach recognition. If thy were close enough (first floor) I used a cheapish 12 channel out 8 in profetional audio card they are easy to come by and generaly support linux check out some garage band supply store to find one, each output looks like a seperate DSP at the application level but still only one IRQ. Because it's a real audio card it outputs a balanced line signal these are much easier to run at distance without interferience. At the other end are pretty straight forward project amps and speakers in the walls I didnt need to go that big wattage wise so these were easy to construct.

    Now for the few places that I wasent comfertable running balance line to I used the ethernet to line converters and a receiver this for me was the garage it's detached from the house so I ran multimode fiber a few inces below the ground picking up some cheap 10/100 fiber cards off of ebay and installing them into the linux router with bridging and a boca terminal in the garage thats also hacked to support bridging (have my old 802.11b AP out there for the car) I could have used the audio on the Boca but it just sounded bad (I tried this first) the terminal runs mp3blaster via an xterm to the core server.

    The other special room is my bedroom it's the only other TV in the house I have an old trident PCI card that can be jumpered for TV out only (This is a GREAT feature) and that runs a Svideo up (need a booster seeing some artifacts fromt he run) I have a DEC color dumb term attached to an old 9 inch monitor and keyboard in the corner it's directy connected to the server on 3 lines and generly runs mp3blaster or lynx to get to the video playlists and startup mplayer for those. I used 3 ethernut's to give me 5.1 for the receiver in the bedroom and am working on getting mplayer to connect to them correctly.

    OK now to the server it's a doul proc Xeon 600 with 2 megs of cache each that I had laying around. Primary video out is a Matrox 450 Maxx secondary is a trident on PCI. I have a few 4 channel out CAD cards that use PCI that can handle the video but need to get scan converters / T

    --
    No sir I dont like it.
  27. Well.. by Ryan+Amos · · Score: 2, Informative

    There's actually a reason you don't see this done more often: Unamplified audio (like the stuff coming from a soundcard) doesn't travel very far. 20, 30 feet max before you start getting signal degradation. You'd be better off getting 4 cheap PCs with cheap soundcards and mounting everything remotely over NFS (and there are already stereo components that do this exact same thing.) I know it sounds like a fun project, but you can buy products like this that allow you to access your MP3 collection and control it remotely (via http, remote control, etc.) Basically, you're gonna need some sort of player at every amp, otherwise it's just not gonna sound good.

  28. I built one a few years back by gaige · · Score: 4, Informative
    I built a four-output MP3 player in 1999 and found it to be a pretty reasonable task if you understand the basics of the software side of the game. For reasons that I won't debate, I was using Windows at the time (don't beat on me, I'm a Macintosh/Windows/FreeBSD user and programmer, so don't go all /.-religious war on me).

    We used a PII 400 and got a very reliable 5 output stream box using a multi-output card that isn't manufactured any longer. I tried a number of these cards and most of them worked well. [ As an aside, the MOTU high-end units are excellent if you are going to put the output into high-quality amps and speakers, but they are expensive.]

    From the software side, we used a custom, multi-threaded MP3 player compiled using Intel's optimizing compilers (which mad a huge difference on the PII) and used a graphical front end with a screen-per-room display showing the album art (scanned in by the user or installer) along with the tracks, play lists, etc.

    We did run into a control problem, even though most of our customers were using systems with centrally located gear, which was that getting a PC to run with multiple distinct (and user-uninterruptable) displays simultaneously was expensive and difficult. To supplement this, we created a serial-based interface which allowed for play lists, random play, and basic start/stop/skip controls for each room and could be combined with the GUI over a commercial home control system (like Crestron or AMX).

    Basically, we would watch the serial port for commands and respond to the control system by flipping individual windows that corresponded to the room that was controlling the system at the time. The control system, in turn, would put show the screen output in a kind of touch screen mode and send mouse locations over the serial port back to our controller. This worked, but was expensive and complex to handle, since only one room could have control over the GUI at the time. For things like displaying the playing tracks and album along with the next track and providing basic control of the start/stop/skip/repeat sequences, we could send text to the control system over the serial port and it would be displayed on the screen in text fields (allowing the main display to be required only for play-list management). This helped quite a bit.

    The control piece was far and away the most difficult part of the project, but since you only have to satisfy yourself, and not the marketplace, I'd suggest that you might find an 802.11-capable PDA as a controller might be useful (and fun to work on). Of course, then you have to either develop your own control protocol or use some kind of CGI and a web server to do the control, but if you separate the players into individual threads or processes that can be easily located, you should be able to send messages (UNIX signals, perhaps) to them and get the level of control that you need.

    From a technical perspective, any OS that has preemptive threading and good interprocess communication should be fine for building this kind of system. We found that by creating our own player (despite the need to license the decode patent from Fraunhofer if we were to sell it commercially), we were able to get a finer control of the playback features (such as pause/skip/repeat) than by using single-shot mp3 play commands that were available at the time. I'd suggest looking for how you can get those useful features if you decide to use existing commands in a Linux environment.

    Of course, on a Macintosh, you can do the playback through QuickTime, which is going to be easy and highly-controllable, so you have that oppotunity too.

    In the end, we found that the customers who got it loved it, but that the installers we were trying to sell to weren't interested in buying a product that required some set-up.

    O