Multi-room audio system with RasPI

One of the nice things about the Raspberry PI is that it is very flexible. One of my other projects showed you how to set up a media center with the RasPI. Today I’m going to enhance this media center so that we get a full-blown multi-room audio system.

What do we need?

We’re going to use the RasPI we installed the Kodi media center to for the server. Then we need one RasPI for every “satellite” player we want to control. Of course we’re going to need a speaker we can connect to the PI and if you don’t want to suffer from the really bad internal audio, you will want to add an USB audio adapter as well. Please look here for a list of compatible USB DACs.

Installing the server

We’re going to install the LMS server on our RasPI first. I found these steps in a tutorial written by Gerrelt, which you can find here. So we first SSH into the RasPI and then execute the following commands:
# install some libs
sudo apt-get install -y libsox-fmt-all libflac-dev libfaad2 libmad0
# get the latest nightly build (from downloads.slimdevices.com):
wget -O logitechmediaserver_all.deb $(wget -q -O - "http://www.mysqueezebox.com/update/?version=7.9.0&revision=1&geturl=1&os=deb")
sudo dpkg -i logitechmediaserver_all.deb
# fix permissions:
sudo chown -R squeezeboxserver:nogroup /usr/share/squeezeboxserver/

That’s it. After that, we can connect to the web interface on http://<ip_of_pi>:9000 to configure the LMS, especially the media folders. I used the local music folder on the PI, which I’m also using for Kodi.

Creating a “satellite”

I had two first generation RasPI Bs and two edimax ew-7811un WLAN adapters left, so I plugged the WLAN adapters into the PIs and used one PI for a kitchen radio and one PI for the bedroom. Both are driven by the very clean and lean piCorePlayer distribution. I simply followed the installation instructions here, skipping directly to the Second method for setting up a Raspberry A+ section. In short, the steps are:

  • Burn the piCorePlayer image on your SD-card
  • Keep you SD-card in your computer, open it via filemanager.
  • Download the newconfig.cfg file from the piCorePlayer site.
  • Edit the first section of newconfig.cfg file so it fits your wireless lan.
  • Save the newconfig.cfg file to the SD-card.
  • Plug the card into your RasPI and boot.

The PI should now boot and connect to your WLAN. You can then open its web interface on http://<ip-of-pi>. The most important thing is to configure the server IP on the Squeezelite Settings tab.

Test

To test whether everything works, go back the the server’s web interface. You should now see the new PI in the list of devices in the upper right section. Select some music and play it. Plug a headphone into the PI. You should now hear your music.

What’s next

If you want more than one “satellite”, perform the above steps for as many PIs as you want. Be sure to name them differently (both LMS name and network device name), so you can tell them apart in your DHCP configuration and the LMS backend. It’s also a good idea to replace the on-board audio by some USB audio device as mentioned above. And thirdly: controlling all of it on the web interface is tedious. I’ve installed the very nice Squeezer app from the Google Play Store. It didn’t work right away for me, however. I had to change the CLI-port from 9090 to 9001 on the server first. But since then it has worked like a charm.

Leave a Reply

Your email address will not be published. Required fields are marked *