Keeping live audio stream synced
Unfortunately, delay as low as 10 milliseconds is noticeable to most folks.  Musicians tend to appreciate even lower delay than that.  And if you have any of the speakers from different devices within earshot of each other, you're going to run into phase issues at even the slightest unpredictable delay (which is inevitable on a computer).
Basically, it is impossible to have a delay that isn't noticeable.  Even if you do succeed in synchronizing the start times exactly, each device has a different sample clock on it, and they will drift apart over time.  What is 44.1kHz to one device might be 44.103kHz on the other.
If you have a more realistic expectation of synchronization... around 50-100ms, then this becomes more feasible.  I would have one master device doing the decoding and then sending PCM samples out to the other devices for playback.  Keep track of your audio device buffers and make sure they aren't getting too big (indicating that your device is behind) or underrunning (indicating a network problem or that your device is ahead).  Have all the devices with the same buffer sizes and maybe even use broadcast packets to send the audio, since all devices are on the same network anyway.
I'm working on an application to provide multi-room audio to devices and have succeeded in keeping audio playing from a file (e.g. mp3) synced using GST and manually using NTP but I can't seem to get a live audio stream to sync.
Essentially I want to be able to stream audio from one device to one or more other devices but rather than them buffering and getting out of sync I want them to all play at around the same time (close enough for any delay to not be noticeable anyway).
Has anyone got any suggestions on ways that this can be achieved or can provide any material discussing the matter? (Search hasn't turned up much)
It's worth noting that this application will be coded in Python.