Install and configure the best audio streaming solution we’ve found: Logitech Media Server.
- Stream music from one source throughout the whole house.
- Put dusty old hardware to work as a music client.
- Never be without your favourite tunes.
Step by step: Music streaming with Logitech Media Server
There used to be a product not so long ago that enabled you to simply run a custom developed and open source music server on a PC or NAS and plug the player into an amplifier, and get complete access to your music. The company was called Slim Devices and its product was called a Squeezebox. In 2006, the company was bought by Logitech, which continued to make lovely boxes until last year, when the whole project was canned. Fortunately, the server was open source and has continued to be developed. This is a wonderful thing, because it’s the best piece of music streaming software we’ve found – and to demonstrate this, we’re going to get it up and running in just six easy steps.
Install the server
The server component manages your local music collection, streams your music to clients, and offers a web interface and a way to remotely control your music playback. We’re going to install the latest server package on Xubuntu 14.10, but you should find the process similar for many other distributions, especially as we’re installing the package ourselves.
As Logitech no longer supports the product, its official repositories are now out of date, so we grabbed the Debian Installer Package version of the latest bleeding-edge community release (7.9.0) from http://downloads.slimdevices.com/nightly. This is a Deb file that can be installed on Ubuntu derivatives with a simple click – though you’ll need to accept the caveat that you’re installing a package from an insecure source. The command line equivalent is to type sudo dpkg -i followed by the package name.
Setting up the server
If you point a local web browser at localhost:9000 (or replace localhost with the IP address of your server for LAN access), you’ll be presented with the first page of the startup wizard. The first page asks you to create an account with mysqueezebox.com, but we’d recommend skipping this step and pressing Next. The next page asks for the location of your music collection, so you need to navigate to the root folder of your files. You can also install plugins onto Media Server to give you access to music from internet radio, iPlayer, YouTube and subscription services like Spotify. The next step asks where you keep your playlists, and you can make this the same as your music folder. Click on Finish and the server will start scanning your collection and creating a database.
Add some plugins
The server’s web page should now transform itself into the playing interface with two panels. On the left panel you’ll find your music sources, including your own collection within ‘My Music’. to the right, you find the area that holds your dynamic playlist. It will show track names and images as you add and play them. If you want to add extra sources, click on the Settings button on the bottom-right. This is where you can change everything about your server installation, but for now, just click on Plugins. If you use Spotify, we’d highly recommend Triode’s unofficial plugin. If you’re in the UK, the iPlayer plugin is also excellent for catching up on BBC radio. Some plugins will need the server to be restarted, and if you need to add login credentials, such as for Spotify, you can do this by clicking on Customise in this list afterwards.
Install the client
It’s not time to connect your client hardware to your network and your speakers and it would discover the server and allow you access to your music through the bundled remote control. Fortunately, there are two open source projects that re-create the hardware in software, enabling you to add as many clients as you want. You can even install them into the same machine as the server. One option is called SoftSqueeze. This is a Java-based tool that recreates the look and feel of the hardware. We like it. But we prefer a more lightweight option called Squeezelite. This is a command-line tool that takes little resources. Most repositories will have Squeezelite available from their default repositories and you’ll need to install this along with flac, libfaad2 and libmad0 packages for Flac, AAC and MP3 support.
Run the client
Our client of choice, Squeezelite, needs to be told what audio interface to use and the address of your server. You can list all detected sound devices by typing squeezelite -l. If your system is running PulseAudio, you should see this listed as ‘pulse’ and we’d recommend using it. The argument for telling Squeezelite which audio device to use is -o “EXACT_DEVICE_NAME’. While you can also tell Squeezelite the specifics of your audio interface’s capabilities, it always will try the best option based on the source material. You’ll need to add -s IP_ADDRESS to tell the client the IP address of your server – ‘localhost’ works too if you’re running the client on the same machine as the server, and we like to provide a name for the player with the -n argument. Here’s our invocation for reference: squeezelite -o pulse -s localhost -n xubuntu (adding -z will run the player in the background, silently as a daemon).
Playing the music
To get playing music, open up your web browser and point it again at port 9000 on the IP address of your server. In the top-right, next to the Logitech logo, there’s a small drop-down menu and you’ll be able to select your Squeezelite player from here. You can add players for different rooms and control them all from here. With a player selected, use the left panel to navigate through your music and either add tracks to the dynamic playlist or play whole albums. You can play music from your other music sources in the same way, and as soon as you click Play, the Squeezelite client will make a sound – if MP3 sources don’t work, make sure you installed the libmad0 or mpg123 libraries. You can remotely control the volume from the web browser and we’d also recommend installing the free Squeezebox app in Android for complete remote control.