OK I have been lurking for a while,
I understand that DigiLinX cracked this problem in their Netstreams line. (http://www.netstreams.com/residential.aspx
They can not only keep audio synced between zones but also between video playing through a ViewLinX and surround sound through SpeakerLinX.
I think they archive this by:
1) Minimize latency in all playback devices devices
2) Pass only uncompressed data over the wire (including video) using Multicasts
3) Rely on a high bandwidth gigabit switch
I think they may also time stamp all packets and use a local ntp style time sync between all devices on the net.
I'm not sure this is something LinuxMCE could or would want to offer but I thought I would at least point it out as food for thought.
Ps. Passing uncompressed data only is the reason they are limited to 1080i at the moment. 1080p 60fps requires more badwidth than gigabit. http://www.netstreams.com/commothertech.aspx?ID=3
About a year ago I wanted to take the plunge and buy a full NetStreams setup. On the plus side, the system is scalable, syncs perfectly, handles audio/video streams, supports bidirectional audio (intercoms), etc. After looking at the mechanics of an install I ran into a few issues:
First, you need to use their proprietary GigE switch and dedicate it to their traffic only. I imagine you could hang a few LinuxMCE boxes off it and not get in too much trouble but it's not a supported installation method.
Second, the components are really
expensive. Also, you have to contact and hire a licensed NetStreams installer to even pretend to get the products in your hands. Any devices I've been able to find, otherwise, are old demo type units. Not really a DIY type solution.PulseAudio
As you can tell, multi-room sync'd audio is important to me. The problem I can see happens when you start listening to music in one room, add another room, and then change the source in the original room. I'm not a pulseaudio expert but I can't think of how to transfer that source to originate from a new location without restarting the stream from a new machine. I don't think pulseaudio has the ability to solve this.
Keep in mind that pulseaudio won't give any success for streaming the video part for movies, TV, or concert videos -- only the audio stream.Softsqueeze/Squeezeslave
At the moment I've been playing a lot with softsqueeze and having pretty good luck with it. This is exciting because I can start a softsqueeze client (or even a headless squeezeslave as a command line client) from pretty much any electronic device. I like this solution because it's heavily supported, the DCE device is already made, and can turn devices not able to run as full MD's into simple music players.Network audio pipes
As another alternative, the core could cue up each audio stream and then allow each MD (or other capable audio streaming device) to just "tune in" and play. It would require a new DCE device but might be worth the effort since it's mostly shell scripting. Here's probably the best (and easiest to jump right in) intro into piping the audio around the house: http://www.debian-administration.org/articles/145
Let me know if you guys see any glaring reason to go one way or the other. I will be working on solving this regardless (for my own enjoyment!) but it would be nice if I take the path that's most useful to the rest of the community, too! Ideas?