Budget Multirooom + Streaming Audio Project

J. Sante / Feb 2017

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
Grand total: $216.96

This document is intended to help others get their own multiroom MP3 streaming system up and running on the cheap.

Demo

Software

Streaming Services:

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

Casting MP3s:

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 Audio Server

Humble is similar to existing Chromecast-compatible MP3 streaming servers out there...

...but with several unique features:

Bookmarks for Audio Books:

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.

Cast to Multiple Devices at Once:

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.

Presets:

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.

Works on mobile devices without requiring an app:
Simplicity / hackability

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.

Hardware

Chromecast Audios


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.

Alternatives include:

Speakers

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.

Server

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: