Help me configure an HTPC with multiple audio outputs.
December 29, 2007 10:40 PM   Subscribe

What's the best way to configure an HTPC to easily manage and control 3 separate audio outputs and then flexibly route those outputs to 3 separate locations?

I'm working on an HTPC setup for my co-operative household. We have three main common music-listening areas: the porch outside (where I've mounted two speakers in a weather-safe place), the dining/living rooms (4 speakers on an A/B switch), and the kitchen.

Ideally, each space could have its own individual music setup. The house is big enough that the sounds are isolated, and someone washing dishes in the kitchen area might not want to listen to the same thing as someone in the living/dining room area or on the porch. However, at the same time, sometimes we might want to have one channel playing in all three places.

The setup I came up with (hardware-wise -- software is another part of this question) was to have one HTPC setup with 3 audio cards (or maybe a 7.1 card, with each output routed separately, provided playback could be performed simultaneously), one for each listening sector. This would provide the possibility of 3 different things playing back at once. To provide the option of playing the same thing in each place, each output would be split 3 times (or 4, to provide for small monitors next to the HTPC itself) and routed to each of the 3 (or 4) listening sectors. In each of the three (or four) locations, there'd be a 3-way switch (to choose which audio output to playback) and a hi-fi tuner/amplifier to drive the speakers and play the music. This way, you could listen to one channel in all three rooms, one channel in each of the rooms, or two in one and one in the other, etc.

Can anyone suggest a better/more efficient method? I'll have to purchase splitters (expensive if audio degradation is an issue, which it may be) and switchers, as well as wire the same audio channels to many different places (using RCA cable). It occurs to me that there might be a more sophisticated solution using coaxial or fiber optic cable that could carry more than one audio stream, but I have no idea where to start figuring out the hardware neccessary to do that, as I've never tried to move sound between a coaxial and RCA/stereo cable and back, and the same is true for fiber optics.

Software-wise, I'll need a way to control 3 different audio players at the same time in an elegant and user-friendly way, so that the HTPC will be easily operated by people with a wide range of technological ability. I've been reading about MythTV and Windows XP MCE is an option as well, as far as I'm concerned. Does anyone have any experience using these or other interfaces to easily control more than one pair of audio outputs at once?

I'm also considering the option of buying near-obsolete (needabecheap) Tablet PCs to use as local control interfaces in each of the 3 areas, but that's some next-level ish. (The co-op is a non-profit, so I'm looking to improve the house a bit while also getting some of my investment written off of my taxes.)

Thanks for any help y'all can offer, MeFites.
posted by Embryo to Technology (15 answers total) 1 user marked this as a favorite
I'm almost positive that there is no piece of software out there that will do what you're proposing. I think your plan (particularly the three sound card part) is not very feasible.

Since you're already entertaining the idea of driving your different rooms with something like a Tablet PC why not just use a an item like the Roku Soundbridge or the Squeezebox? They work over wi-fi and play music stored on your computer (in your case your remote HTPC.)
posted by wfrgms at 10:55 PM on December 29, 2007

Response by poster: that would be a more elegant solution, to drive the audio locally. The problem is just that then you lose the ability to play the audio in all three places.

I don't mind infeasible solutions, as long as they're cheap and functional.

Maybe I can set up a three-frame view of three different iterations of a web interface. [back to researching...]
posted by Embryo at 10:59 PM on December 29, 2007

The problem is just that then you lose the ability to play the audio in all three places.

No. You can still run audio cable from the HTPC to throughout your home. Then it just becomes a matter of selecting the source in each room (assuming your amps or pre-amps have more than one input.)

I don't mind infeasible solutions, as long as they're cheap and functional.

Generally an "infeasible solution" would be one that is neither cheap nor possibly functional.

Both products I linked to above have lots of back end support and web interfaces, you should take a closer look at them.
posted by wfrgms at 11:10 PM on December 29, 2007

Response by poster: Haha, I was being ironical. While also meaning, if it's a pain in the neck (or even overly complicated), that's OK, as long as it's cheap and works as intended.

I appreciate your suggestion, especially software-wise. The hardware solution you offer still leaves me with a need to route audio all over the place, but adds localized control, which is great, but much more expensive. Putting three sound cards in one PC is not expensive or complicated -- as far as I can see, the difficulty lies mostly in the a) software control problem (possibly solved by a web interface, I will have to read more about them) and b) audio routing complications.
posted by Embryo at 11:20 PM on December 29, 2007

Response by poster: Looking at your links more closely, I see they are all hardware -- but nonetheless the web interface smells like a promising, possibly-customizable option.
posted by Embryo at 11:22 PM on December 29, 2007

You're gonna have a big problem with line levels. When you have two stations switched to Source A, the volume will be much lower, and if you go to three, it will be lower still. If a station switches away, then anyone else on that source will suddenly get much louder.

It's just not a good solution. Squeezeboxes would work a lot better. They're designed to do exactly what you want, and they work very happily over wireless, so you don't even have to run cables between the rooms. You just need a small amplifier and speakers at each station. The downside is that it's kind of expensive, but it will solve the problem very elegantly. And each room can be controlled entirely from a local remote control, using the local Squeezebox display, so you save the money on tablet PCs.

If you want to see how the system works, download and install the free Slimserver from Slim Devices. (there's a link up above.) Once you have Slimserver running, in the Help section, there's a Softsqueeze Java program you can run. It almost perfectly emulates a hardware Squeezebox, although it won't sound as good because Windows mangulates sound pretty badly. (another reason not to do it the way you're thinking.) That will let you play with the interface, and see how you like the system, without spending a dime.

The Soundbridges are cheaper, but they're quite a bit inferior in terms of sound quality; several of their models won't even properly do lossless audio. Squeezeboxes, on the other hand, are audiophile-class devices at computer-class prices.
posted by Malor at 11:35 PM on December 29, 2007

Response by poster: Malor, tell me about the ability of the Squeezeboxes to play the same audio stream at the same time without phasing problems (i.e. if sound bleeds from one room to the next, it won't be anachronistic). If it can really stream in real-time from the HTPC to three different outputs without any delay, or at least a perfectly uniform delay, then you two are right and it may work well.
posted by Embryo at 12:03 AM on December 30, 2007

Looking at your links more closely, I see they are all hardware

Both boxes are UPnP AV media servers, so you can choose from dozens of different software packages to run them. Most have advanced web interfaces and other gizmos, plus there are lots of people out there writing their own scripts and such.

Putting three sound cards in one PC is not expensive or complicated

I think you'll find that it is more complicated than you think - particularly when you're trying to find software to play the music.
posted by wfrgms at 12:08 AM on December 30, 2007

Response by poster: In the past, I have had success using Winamp via DirectSound to power more than one playback device -- many sound card drivers offer each paired channel as a separate output. With three different instances of the same program, it's not too hard to have three different things being played, and fitting three interfaces onto one screen doesn't sound too hard either. Right now I'm looking at the VLC web interface, which apparently is not too hard to personalize.

I love the elegance of y'all's solutions, but the sticker price is hard to deny. 3 separate slingboxes would be somewhere in the neighborhood of $750-$900. If I purchased amplified splitters, which would fix the line level problems, they'd run me about $150 for all three. The switches are much less complicated and would be closer to $20-25 each, so add $75 to be generous. It's like 12 dollars for a 30 foot stereo cable, and I'd probably need 6 or 7 of those, so add $80. That comes to a little over $300. I already have the required tuners (3) and a 7.1 audigy SE is $25 including shipping. We're at like $330, and my infeasible, inelegant first thought seems to have the same functionality as the slingboxes (but more flexible, because the only software interface between me and the HTPC is the same one you'd have if you were looking at the HTPC's own screen), for at least $450 less. I appreciate your thoughts, but since price is fundamental in this case, my original plan still seems to be ahead. Is there some way to do what you're suggesting more cheaply?
posted by Embryo at 12:18 AM on December 30, 2007

Embryo, no system of this sort will ever be "perfect", as in free from measurable delay error. It just can't happen, as there are differences in individual electronic circuits and distances from the server that can't be corrected for. Even a physical sharing approach like you're talking about is going to be badly out of phase from one room to the next, because the signals get there at almost light speed, but the sound propagates at about 600mph. This means you will get phase errors at the transition points. It physically cannot be perfect from all listening positions.

The sync between Squeezebox hardware units is pretty damn good. I can't imagine finding it unacceptable, as long as you have a reasonably good wireless-G signal in your house. The sync between hardware units and the Softsqueeze emulator is much poorer, however, particularly with streaming audio. After a period of time, you will almost certainly notice the software player being a second or two out of sync. With local sources, it resynchronizes at the start of every track, so they don't slip enough to notice, but with streaming sources, they do. This is just between hardware and software -- multiple hardware units stay very closely matched.

The drawback to synced music is that you will get a very small gap between each song as the players resynchronize. If you use the normal single-player mode, you can play concept albums like The Wall straight through without a hiccup. But if you are syncing two players, then there will be a tiny pop at the start of each track if there's no silence between the songs. I don't think there's any way to avoid this unless you rip the entire album as a single large MP3 or FLAC.

You can, however, settle for not syncing the units, and just hitting play at about the same time. You'll probably find that quite acceptable. Personally, when I hear the streaming audio sync problem between hardware and software players, I don't mind it much at all. It's noticeable, but not annoying. In the special case of concept/soundtrack albums, I'll think you'll find hitting multiple Play buttons at about the same time works well enough.

If this is an issue for you, ask on the Slim forums about it. I'm running a slightly downrevved version of the server, since I'm happy with it and don't feel the need to change, so it's possible they may have figured a way around this in more recent versions.
posted by Malor at 2:00 AM on December 30, 2007

Unfortunately my patience is growing slim with you Embryo. You don't seem very interested in exploring the ideas that both Malor and myself have proposed, so here is one last attempt to get you to listen:

3 separate slingboxes would be somewhere in the neighborhood of $750-$900.

The Soundbridges are $129 each. You're either going to spend a little now, and get a system which doesn't work, or invest a little more up front for a tenable solution. Did you really think that multiroom audio would be cheap?

my infeasible, inelegant first thought seems to have the same functionality as the slingboxes (but more flexible, because the only software interface between me and the HTPC is the same one you'd have if you were looking at the HTPC's own screen)

Your solution is only feasible if your time isn't worth anything because you're going to spend the next year fixing and breaking a system like that while never being completely satisfied with the end result.

price is fundamental in this case, my original plan still seems to be ahead. Is there some way to do what you're suggesting more cheaply?

A.) Your original - at this point let me just go ahead and say "harebrained" - plan won't work. Go ahead and install three sounds cards and see what you get.

B.) Why do you think dedicated music servers cost $4,000? Hint: It's not that they are just pcs that some company has slapped three sound cards in...

C.) If you're in Room A and the HTPC is in Room D, do you really want to have to walk over to Room D every time you want to change a song? Real multiroom audio servers live off of control pads and remotes in the local room. The solution Malor and I have proposed is closer to the functionality you get from a $4000 muisc server than you'll ever approach with your three sound card, unworkable monstrosity.

To wit:

Your HTPC can both serve the files which the Soundbridges can play locally and also serve a "live" stream of local music. Therefore a person in Room A can either play something to their liking, or tune the Soundbridge into the local house-wide stream. The local stream can be whatever you want; an album, a playlist, your entire music library set to random, and it can sit there and just stream 24/7 if you like. If you want house-wide audio all you have to do is open a web browser on the HTPC, browse to each web interface for the Soundbridges and set them to tune into the local stream, or go room to room changing the tuning on the Soundbridges with their remote.

If you had studied the products Malor and I linked too more closely you would both realize this functionality was there and that it is exactly what you're trying to accomplish.
posted by wfrgms at 11:47 AM on December 30, 2007

Response by poster: Wfrgms, as tempting as it is to get as personal with you as you're starting to get with me, I'm not gonna. You keep insisting a) that 3 sound cards won't work in one computer (ever tried it?) without justifying that statement at all. You keep telling me b) my solution won't work, without justifying it at all, aside from questionable statement a.

The reason why your solution is silly is because audio does not belong in packets when it comes to local playback. Packets do not move in real time in discrete intervals. Only copper wire carrying a stereo signal is going to succeed in doing that. I can tune each Soundbridge into the same stream, with no guarantee that it's going to come out of each with the same relative delay, or even a consistent playback speed, or even the same delay each time. Phase problems resulting from a real-time, oldschool solution can be minutely compensated for, whereas the Slingbox or Soundbridge will ahve the same problems, forever, with no hope of adjustment or compensation. What if I want to use the soundsystem to amplify live performances that happen in our house sometimes? That's impossible with your solution. Each room would be on a different part of the stream. This is just not useful to me at all. Do you understand? your solutions are not exactly what I'm trying to accomplish. No matter how many times you repeat that, it's not becoming any closer to true.

I'm just hoping that someone besides you two might come in with a more interesting, less lazy and more practical solution. Until then I'm going to move forward with the original plan. Controlling the three streams on the HTPC will be fine, especially since any laptop can adjust the playback anyway, and later I can add cheap, obsolete tablets to each room to serve as an http control interface. I appreciate you two helping me vet some other options, but stop acting like I'm not paying attention, when truly you are the one ignoring my requirements for this setup.

I'll let you know how it goes, if you want.
posted by Embryo at 1:50 PM on December 30, 2007

If it helps, you can certainly run three sound cards at the same time in XP. I've done it with an onboard POS, a 16 bit soundblaster, and a 24 bit hoontech.

Sorry, I don't have a suggestion w/r/t sync, I have some vague idea of doing it all in hardware, but it'd be a nightmare to rig, and you'd have to be at the base to select anything, and I'm sure you've already thought of it.... The only time I've done anything similar was simply running a couple of amp/speaker setups from the same PC, just by chucking a mixer in there and using both the main and control-room outputs. Of course, I'm a musical fascist, so the idea of allowing others to select the music is a little alien to me...
posted by pompomtom at 3:02 PM on December 30, 2007

audio does not belong in packets when it comes to local playback.

I hope you don't use CD players then, because music is packetized on the disk into discrete chunks.

The delays in these digital solutions, as long as you have a reasonable wireless, isn't going to be noticeable. If you want to be really anal, you can share via physical Ethernet. Run Ethernet through a switch and the results will be essentially perfect, every time. Computers are unbelievably fast, and even if you grant slightly non-deterministic packet delivery times, it won't matter in the least. You're talking tiny fractions of a millisecond, so far below human perception that it essentially doesn't exist. Full CD quality music is about 1.5Mbit, so a 100Mb Ethernet will have so much overhead that you could lose two packets in three, running multiple channels, and still not hear any difference in the music.

The solution you're proposing is inelegant, hackish, and solves problems that aren't really problems. You seem to have some vague idea about music as being this pristine thing that shouldn't be touched by evil packetization. Music is just bandwidth, like all other forms of information. If you trust a CD player to do a good job playing back your music, there's no reason not to trust a Squeezebox. (A Squeezebox, in fact, will do a measurably better job in almost all cases.) You're reaching for this 'phase perfection' thing, but you're going to sacrifice most of your actual usability in order to get there.

And, this is important: there's no such thing as phase perfection for more than one listening position at more than one frequency. If you get 500 Hz dialed in at one position, then 450 and 550 Hz will be wrong. At every position, in every frequency. You're trying to do something that is literally impossible, and you're making a system that will be very hard to use to get there.

You did add this:

What if I want to use the soundsystem to amplify live performances that happen in our house sometimes?

Well, that would be harder, but it's worth pointing out that this is the first time you mentioned it. That might actually be doable via Squeezeboxes, but there's going to be a bit of latency between recording and amplification, which I imagine would mess things up pretty badly if the musicians themselves could hear it. Squeezeboxen are excellent at playback quality and synchronization, but they're not designed to be low-latency devices. That takes special software and interfaces even on a computer soundcard, so your method will likely fall down badly as well.

I think it's unlikely that you'll be happy with the solution you're proposing. Unless you're willing to put an extraordinary amount of effort in, it won't ever really work right. Your other users won't like your system, and in exchange for them disliking it, you will have gained very little.
posted by Malor at 4:07 PM on December 30, 2007

Response by poster: Malor, I appreciate your contributions to this discussion. You've helped me iron out the cost/benefit of an ethernet-based option. But I'm sorry to say that I'm still not convinced.

CDs are played back with a buffer between reading the disk and projection out of the speakers. Everything comes out of the speakers in real time. This is not how ethernet works at all. There is a buffer between each Slingbox, in addition to one at the playback source (if you're playing back from the HTPC). That's why there's no way to guarantee that things will line up at all. Computers are "unbelievably fast," but they are not faster than a simple electrical circuit.

Phase problems would be miniscule and really not noticeable in the house I live in. There's plenty of ambient noise to swallow the difference. I've used A speakers in one room and B in another with no discernable problem or discomfort moving between the two spaces. With the Slingbox, we're talking about an easy 5-10ms of lag, with an unpredictable variability. I'm aware of the complications of adjusting for lag at various frequencies, but it is not like this isn't done by competent audio engineers all the time in theatres and concert halls all over the world. Need be, I'll throw an old laptop into the mix to apply custom delay by frequency range.

I don't have a problem with "packetizing" audio. MP3s are fine. But you don't want there to be a router between your sound source and your speakers. It's an unncessary complication. It's a principle thing, yes -- because audio that's transmitted and played back in real-time is much more flexible than an encoded network stream is. Why make things harder than they need to be?

Sound cards worth their salt can offer a pathway between input and output that adds no discernable lag, if any at all. That's how live music would be monitored -- monitored, like a microphone to a mixing board to the monitors and speakers. I just plain cannot fathom how a straightforward solution like the one I'm proposing, sticking mainly to simple transmission of electromagnetic impulses, would seem "inelegant, hackish", and harebrained. Why make things harder and like twice as expensive?
posted by Embryo at 6:18 PM on December 30, 2007

« Older When was police line tape first used at crime...   |   Is the sweetness gone? Newer »
This thread is closed to new comments.