I've wanted to wire my apartment up with a multiroom audio system for years, however the cost has always been prohibitive and I always wanted a few features which just don't seem to exist in any of the software out there.
After purchasting Chromecast Audios, off-the-shelf speakers and writing my own MP3 streaming server, I now have the entire apartment set up with exact features I wanted for about the cost of a single Sonos speaker.
|Chromecast Audio * 4||$25.00 * 4 + $8.50 tax||$108.50|
|Creative Inspire T12 Speaker Set * 2||$49.98 * 2 + $8.50 tax||$108.46|
|Cheapo PC speaker set * 2||Had these lying around||$0|
|Software||All free or custom||$0|
This document is intended to help others get their own multiroom MP3 streaming system up and running on the cheap.
Chromecast Audios are compatible with just about every music app out there: Spotify, Google Play, Rhapsody, Pandora etc etc. Sadly the Audible app doesn't support casting, though CloudPlayer does via Chrome. Full list of supported apps
As a lifelong music lover, audio book reader and (very) early MP3 adopter I've ripped more than my fair share of CDs for the purpose of playing them on modern devices. I wanted to be able to cast my MP3s to the multiroom setup and my phone but sadly the existing software is ahhhhhhh a bit lacking in my opinion.
I wrote my own instead.
Humble is similar to existing Chromecast-compatible MP3 streaming servers out there...
...but with several unique features:
Whenever you pause or stop playing an audio book, your current track and play position are saved as a "bookmark". You can then resume from that exact position in the track later, even if streaming over the internet to your phone in the car.
In contrast to Spotify, which only lets you cast to one device at once, you could theoretically cast 16 different MP3s to 16 different Chromecasts or web browsers simultaneously.
You can save your current playlist, play state, volume levels etc as a 'preset'. Just click the preset to get your Chromecasts back to the exact same state. In addition, you can schedule presets to play and stop at certain times. I personally use it go to sleep to a white noise track in the evening and wake to NPR in the morning.
I'd used Ampache for a while but found it far too buggy, especially the mobile app. The others are either not open source or are similarly bloated.
I spent quite a bit of mental effort trying to decide when to stop adding features to prevent the codebase from getting too difficult to hack/maintain. In the end, it does only the basics and in the simplest way possible. It uses modern-ish web technologies (Rails 5, AngularJS 1.6, HAML/SASS) and the excellent PyChromecast API.
As a result, if anyone out there wants to add/remove a feature it should be minimally difficult, and the app's stability and usability have so far proven to be excellent.
For the wireless audio devices, I went with CCAs. They're cheap, universally supported and have an API I can hack.
Setup is a breeze. Instead of the wireless audio device and speaker being integrated with proprietary software (e.g. AirPlay and Sonos), you just plug in whatever speakers you've got.
I got them just before Christmas when the Google store had them for $25 and free shipping. As of this writing it looks like they're selling for $35.
For the kitchen and dining room I wanted something with decent fidelity and room-filling volume.
After way too much research for a $50 purchase, I ended up getting two sets of Creative Inspire T12 Speakers.
They worked perfectly,
The set for the kitchen went above the fridge.
The other set went on the arcade machine in the dining room, with the CCA hooked to the sound card's line-in so I can hear the casted audio in addition to the game sound effects.
For the bedrooms, the speakers didn't have to be anything special whatsoever: they'd mainly be used for audio books and white noise. I took the cheapo speakers from the arcade and the even more cheapo Logitech speakers from a forgotten box in the basement and hooked everything up.
To start with I just ran the Multiroom server on my development Hackintosh,
If you're trying to replicate this project, a few tips to keep costs down: