I’d really like a good open-source alternative to the Sonos. I love the idea of music playing in sync via IP, because it makes it so much easier to play different music in different rooms since you can address each device individually. I did some digging and there doesn’t seem to be a good audio sync system for playing audio in sync across Linux boxes, especially super tiny ones like the Pi that would be perfect for this. I’m thinking of doing it with Node since that’s so universal and always so fast, plus I’m already a pretty decent JavaScript dev.
I’m figuring if you use NTP and setTimeout to make sure the song starts at EXACTLY the same time on every machine, it would be good. Since MP3 files aren’t very big, if you’re on wifi/Ethernet, it’d be pretty easy to just transfer it to the device before playing it. This eliminates any “oh crap this stream is too slow” issues since the device just has to play the MP3 at a very very very precise time. As long as your device is capable of playing MP3s without skipping, and with a few protections against things getting out of sync, this seems like it’d be a relatively simple Node software to write.
Anybody on board with this? I’d love to get something going on GitHub.
Sounds pretty cool, it's be awesome to have some speakers in each room and use a pi or some small device as a player for the speakers. I would imagine it'b be cheaper than a sonos system?
Just to put my own ideas in what about an android app? Lets say you have a media server with all of you music on it, using you phone as an interface you could select the device(s) that are connected to different speakers and then chose to play albums or your whole library from the server, rather than streaming from a device like a phone. It would probably be more stable and the people likely to use an open source alternative will probably already have a media server.
That would be totally do-able, I just want to start with a low-level Node server system though. Then once that's stable and documented, people can build whatever they want on top of that, including an android app, ios app, or whatever else.
The only thing that will be a little difficult is streaming. I think I will start with just MP3 files since most media servers have things stored that way anyhow, but I hope eventually to expand to support live streamed audio, probably via UDP just for the sake of latency.
Edit: And yes, it'd likely be cheaper than Sonos, and way more flexible. If you already have a media PC or another device capable of running Node in a room, you won't have to buy anything.
Sounds cool, but I would not advocate for using Pi's for this project, since it's analog audio output is PWM based, it does not have an actual soundcard, so the quality is not that great, might be good enough for a less picky ear though, at least test it first on extreme frequencies. The only source for quality audio on the Pi is HDMI audio, which would be a total pain to hook up, though there might be a nice easy way, I do not know.
Oh okay. Well, if it's Node, it should be easy enough to run on other things than the Pi. I've only got one Pi anyway, so I can't test it on too large of a scale, just thought a little tiny Linux board like that would be easy to put in every room. Maybe the Intel compute stick would be a better option.
chromecast does this, openly-ish now.. the little audio chromecasts with the 3.5mm audio can even do sync play where they synchronize playback all over your house. tons of software supports it. It's more or less an open standard. If you like sonos, you'll love the chromecast setup.