I’m quite a fan of the Logitech Media Server audio playback technology, originally from Slim Devices who were acquired by Logitech in 2006. Logitech subsequently killed off the hardware player product line in 2012. The system is broadly similar to Sonos with which it was competing; Sonos gained more traction in the wider marketplace and clearly Logitech weren’t happy enough with the sales of their hardware players to continue manufacture.
The system architecture consists of a central Server application, mostly written in Perl (and distributed under an Open Source license) coupled with relatively ‘slim’ (i.e. dumb) hardware Players which actually deliver the audio.The Server needs direct access to the audio files (potentially from a NAS or other file server) but the audio data is streamed over a network to the Players. The players can work independently, with each one playing different media, or any combination of players can be dynamically linked into a playback group where the group members precisely synchronize their playback of the same media stream.
Most of the players act as a simple high-quality audio source and output analogue audio to RCA connectors or digital audio to coaxial or optical S/PDIF connectors – effectively they act as a replacement for a CD player within a wider Hi Fi system. Playback is managed via an infra-red remote control (pointed at the Player but with commands relayed via the Server), the Server’s web User Interface or a smartphone app which connects to the Server’s web API. Some of the more modern players (notably the Boom and the Radio) are all-in-one devices with their own amplifier, speakers, screen and control buttons.
five six of the hardware Players which work great (though I guess each one will fail at some point) and – for now at least – there’s usually quite a selection available from eBay, but this article is about building a new player from scratch.
The key piece of the jigsaw is the excellent squeezelite player by Adrian Smith (‘triode’) who is also responsible for some great plug-ins for the Logitech Media Server; maybe I’m biased because he’s based in the UK (like I am) and hence supports UK-oriented media sources such as the BBC. It’s possible to run squeezelite on pretty much any hardware platform but the Raspberry Pi is a great choice, especially when coupled with one of the hi-fidelity audio playback add-ons for the Pi, such as the range from HiFiBerry.
For the new house I’m planning on having built-in (ceiling?) speakers in some of the rooms which warrant some sort of built-in music player to feed them.Using multiple players configured in the same playback group permits different combination of rooms to play the same media at the same time.
There is no user interface on the squeezelite Player itself but that’s no problem because the playback is controlled by the Server’s web interface, or using one of the smartphone / tablet remote controls such as iPeng.
For the built-in player solution, the hardware consists of:
- A Raspberry Pi Model B (or B+)
- A HiFiBerry Amp (or Amp+)
- Alternatively something like the HiFiBerry Digi+ and an external amplifier
- A DIN-rail mounting case which provides enough space for the Amp
- A suitable option for the B+ is this one
- A power supply (18V) for the HiFiBerry Amp (which in turn powers the Pi itself)
In principle it should be possible to use any Linux distribution for the Raspberry Pi but the easiest option by far is to use the absolutely tiny piCorePlayer distribution which is dedicated to hosting squeezelite and includes out-of-the-box support for the HiFiBerry boards.
Related resources on the ‘net: