LJ Archive

Logitech Squeezebox Platform: Livin' in the Land of (Open-Source) Hi-Fi

Craig Maloney

Issue #221, September 2012

Ever wished you could have a house full of music, but afraid to commit to a proprietary platform? The Logitech Squeezebox is an open platform for streaming music all throughout your house and beyond. And, it runs Linux too.

There's no shortage of options for playing music under Linux. Whether it's local media players, cloud-based music services or streaming music, Linux users are spoiled for choice. But the number of choices diminishes rapidly when you add features like multiroom playback, or add multiplatform support for Windows, Macintosh and smartphones like Android and iPhone. Platforms like Apple's iTunes support multiple devices via Air Play, but Linux machines can't support Air Play without major effort and hacked-up solutions. Logitech's Squeezebox not only comprises a reasonably priced hardware platform, it also supports several operating systems for both playback and server-side usage. The newer Squeezebox devices (such as the Squeezebox Radio and Squeezebox Touch) run on embedded Linux platforms. The Squeezebox server and devices support most major, non-DRM-encumbered formats (including MP3, FLAC and OGG) and support many on-line streaming services, such as Spotify, Pandora, Last.fm and SiriusXM. Logitech also supports an active Squeezebox hacker community and makes the source of both the player and the server freely available.

Figure 1. Unboxing the Squeezebox Touch

Logitech's Squeezebox platform is the perfect solution for my listening needs. I use the Squeezebox every chance I can, streaming music from my home machine to my workstation at work via an SSH tunnel. Add a long history of quality hardware devices and an open platform, and you have a compelling reason for every Linux user to consider using the Squeezebox Platform. By the end of this article, you'll wonder why you haven't set up a Squeezebox platform of your own, and once you have, you'll wonder why you didn't do it sooner. That's okay, though; there's never been a better time to start.

Brief History

The Logitech Squeezebox player has a long history of development. It started back in 2000 with the formation of Slim Devices. Slim Devices released its first music player, the SLiMP3, in 2001. It was a wired-only device, capable of playing MP3-only streams. It relied heavily on the Slim Server to perform transcoding duties for other formats. Later, Slim Devices released wireless versions of the SLiMP3 with enhanced displays and support for other formats, such as OGG, WAV, AAC and WMA. The first of these models, the Squeezebox1 (or SB1) supports only WEP over 802.11b, so it's more useful on today's networks via a wired connection. The Squeezebox2 (SB2) adds both WPA encryption, 802.11g wireless communication and native FLAC support. If I were looking for an older Squeezebox unit, the SB2 has the base feature set I would want for any Squeezebox unit. The SB3 (initially named the Squeezebox, later re-named the Squeezebox Classic) is essentially the SB2 with a different case design. Every one of these devices still is supported by the Slim Server (now Logitech Media Server), so if you find one in the wild, be sure to pick it up!

In 2006, Logitech acquired Slim Devices and continues supporting the Squeezebox line with frequent software releases, and with newer hardware to refresh the Squeezebox line. Logitech released the Squeezebox Boom, the first all-in-one Squeezebox device that included stereo speakers, and used the same interface as the Squeezebox Classic. Logitech also released the Squeezebox Duet, which bundled the Squeezebox Receiver (a headless device capable of playing Squeezebox streams) together with the Squeezebox Controller (a remote-control device capable of controlling any Squeezebox or Transporter device). Both the Boom and Duet have since been discontinued, but the Squeezebox Controller is notable as it was the first device to ship with the new Linux-based SqueezeOS operating system and the Lua-based SqueezePlay interface. Logitech released other Linux-based hardware devices: the Squeezebox Radio and the Squeezebox Touch (which I discuss later in this article). Logitech also sells the Transporter, which is geared toward the audiophile market. The Transporter uses two fluorescent displays (similar to those used in the Squeezebox Classic), and includes upgraded, audiophile-quality hardware (See the Logitech Transporter sidebar). At the time of this writing, the Transporter, Squeezebox Radio and Squeezebox Touch are the only hardware players sold by Logitech.

Okay, enough history. Let's get something set up so you can start playing music!

Getting Started

You'll need both a Logitech Media Server and one or more Squeezebox clients to make use of the Squeezebox platform. Fortunately, you won't need to make a trip to the store, as both the server and clients are freely available on-line. The server software is available from www.mysqeueezebox.com/download in prepackaged RPM or .deb formats, or as a tarball of Perl source code. The server software does not require a mysqueezebox.com account, but I recommend signing up for one, as some proprietary music services will not work without a mysqueezebox.com account. mysqueezebox.com also will able to act as a Squeezebox server should you be unable (or unwilling) to connect to a local server.

Follow the installation instructions for your platform to install the Logitech Squeezebox server. Once you have it installed, navigate to your server's address, port 9000 (for this article, I'll use http://localhost:9000 as the server URL). Enter your mysqueezebox.com credentials (if you have them), and click Next to continue (or Skip). Next, select where your music is located on the server and where to store playlists. Once those are selected, your server is active.

Server

Let me talk a bit about the Media Server. The Media Server is the brains of the Squeezebox platform. The server acts as the repository for files and playlists, as well as a Web-based controller for all of the connected Squeezebox devices. Most functions and options available on the Squeezebox players can be performed using the Squeezebox server. The server has a bunch of settings for setting various functions of the connected Squeezebox devices. One of those that I use determines the quality of output to the Squeezebox devices. I have a work Squeezebox client that I don't want to deliver full-sized FLAC files to, so I tell the Media Server to transcode those files to 160Kbps MP3 files before sending them to my client. There are way too many settings to cover in this article, but suffice it to say that there are a bunch of ways to configure the server and clients. The Media Server also is extensible using a variety of plugins and applications, which can customize the Logitech Media Server to fit your music listening needs.

Figure 2. Playing music via the Squeezebox Server's Web Interface

Figure 3. Harmoniously Synchronized (Left–Right: Squeezebox Classic, Squeezebox Touch, Squeezebox Radio, Squeeze Commander/Squeeze Player on Android, Squeezeslave on ASUS EEE 701, SoftSqueeze)

Current Hardware Players

Logitech currently sells three hardware Squeezebox clients: the Squeezebox Radio, the Squeezebox Touch and the Transporter. I've personally used the Squeezebox Radio and Squeezebox Touch, as well as an older Squeezebox Classic, so I discuss those units in more detail here. Both the Squeezebox Touch and Squeezebox Radio are ARM-based Linux devices using a real-time customized Linux distribution called SqueezeOS. User interactions are handled by SqueezePlay, a Lua-based front end for interfacing with Squeezebox devices. The Squeezebox Radio features a single bi-amplified speaker, an 1/8" input jack and an 1/8" headphone jack. The Radio comes in three different colors: black, red and white (white is available exclusively from the Logitech on-line store). It's perfect as a standalone radio (I use my Squeezebox Radio in the bedroom as a clock-radio and occasionally in the kitchen when doing the dishes).

There are six hardware preset buttons on the Squeezebox Radio, which can be used for marking Internet Radio stations or other favorite songs. The interface centers around a jog-dial for selecting menu items and is pretty intuitive to use. The Squeezebox Touch is also a SqueezeOS-based ARM device, but it forgoes the speaker in favor of digital and analog connections. It features both coaxial and optical S/PDIF digital ports, as well as RCA stereo and 1/8" headphone analog outputs. The Squeezebox Touch also adds a slot to accept SD card media and a USB port for external drives or other media. These both allow the Squeezebox Touch to play audio files without using a server, and also allow the Squeezebox Touch to act as small Media Server. (Logitech recommends the Squeezebox Touch serve only a small number of clients and less than 5,000 files, as it doesn't have the CPU to handle larger amounts.) The Touch interface is extremely touch-friendly, using swipes to scroll selections of songs, and featuring an on-screen keyboard for textual input. This gives it a slight improvement over the jog-dial interface of the Squeezebox Radio. The Squeezebox Touch also ships with a full-featured remote control with a directional pad, a numeric pad that handles alphanumeric entry, and other useful remote functions like volume, favorites and more. The Squeezebox Radio offers both the remote and an internal battery as options, which are available via the Squeezebox Radio Accessory Pack. The remote for the Squeezebox Radio is a reduced-functionality remote compared with the remote that ships with the Squeezebox Touch (it forgoes the numeric input) but the Squeezebox remotes are interchangeable.

All of the Squeezebox devices I've tried have great sound. The Squeezebox Touch has the advantage of more standard connections (especially if you currently have digital inputs on your receiver) and a very user-friendly interface. I find the Squeezebox Radio is great for portable applications (especially with the optional battery), while the Squeezebox Touch fits perfectly into our home audio system.

Software Players

One of the benefits of the Logitech Squeezebox platform's openness is the number of software player options available. One of those is Logitech's own Squeezeplay software. The Squeezeplay software is the same interface as the Squeezebox Touch or Radio. It is available for Windows, Macintosh and Linux. Unfortunately, I had little success getting it to work under my Ubuntu machines, but it worked well under the Windows system I tested. What works well on my Linux machine is a terminal-based program called Squeezeslave. Squeezeslave is a C-based program that emulates the interface of the Squeezebox Classic devices faithfully (it even requires you to use the numeric keys to enter search text, as if you were using a remote). Squeezeslave boasts excellent sound quality, and it can be run as a dæmon so you won't have to dedicate a terminal to use it.

Another excellent player is the Java-based Soft Squeeze. It is a more graphically faithful version of the Squeezebox Classic devices, with a variety of skins (including some that look like the Squeezebox Transporter, Boom and Classic). Both of these applications fit nicely with my listening habits, because I can use the same server for both home and work. I've set up an SSH tunnel at work to ports 9000 and 3483 (the stream and control ports, respectively) and have access to both my large library of songs, my list of radio streams via the Squeezebox server and one of the aforementioned clients (Squeezeslave, primarily). So, if the mood strikes me to listen to Kendra Springer at work and all I have on my phone is Death Metal, I can hook up to my Squeezebox server at home and listen to all the Kendra Springer I want. (Hey, sometimes it happens!)

In addition, several applications are available for Android, iPhone and Nokia devices. Logitech's own Squeezebox Controller (available for both Android and iPhone) acts as a controller for any Squeezebox device hooked to a server. The menus and interface are similar to the Squeezebox Touch interface, and it works as you might expect. The third-party applications are really where the power of the Squeezebox platform is realized. iPeng (available on the Apple iPhone) acts as a Squeezebox controller application, but for a few dollars more, you can unlock a receiver application that turns your iPhone into a portable Squeezebox receiver. This allows you to control and listen to your Squeezebox music as far as your network will let you. Android users have the option of purchasing a separate application to act as a Squeezebox receiver: Squeeze Player (not to be confused with the Squeezeplay interface). Squeeze Player only acts as a Squeezebox Receiver, but when paired with the Logitech Squeezebox controller application, it becomes a very capable remote player. Android users have the option of using a very-cool third-party controller application: SqueezeCommander. SqueezeCommander has all of the functionality of the excellent Logitech Squeezebox application, but also includes a bunch of features. Most notably is the ability to download music files available to the Squeezebox directly onto the Android Device. I find this extremely handy, as I can download my music without needing to have the phone hooked directly to the computer. Nokia users have the option of using Squeezester controller, though I'm not aware of any receiver applications for those devices. There are also similar Squeezebox receiver and controller projects for XMBC in various stages of development. Check on-line to see if there's Squeezebox support for your platform. You may be pleasantly surprised. (And if there isn't, you'll have all of the tools and documentation to create one).

Applications and Plugins

Linux users are usually left to their own hackish solutions whenever it comes to streaming services like Pandora and Spotify, or for streaming Sirius XM satellite radio. With the Logitech Squeezebox player, support for these services (as well as many other Internet-Radio services like Spotify and Soma.fm) are installable via applications or plugins. Application installs are handled from your My Squeezebox account. Select the application you want to install, click install, and your Media Server will install the application.

Figure 4. You can install applications for the Squeezebox Server via mysqueezebox.com

The Squeezebox supports many different music services, as well as Facebook and Flickr. Yes, you read that right: Flickr. Because the Squeezebox Radio and Squeezebox Touch sport color LCD screens, you can have them perform a slide-show of Flickr images on the device. There also are hundreds of plugins available for the Squeezebox, many of which were written by third-party authors. These cover a myriad of uses, like adding UPnP/DLNA capabilities to the server, switching playlists and positions from one player to another, and many more. There is an active plugin community available, and extensive documentation for creating plugins inside the Help menu on the server (Help→Technical Information→Logitech Media Server Plugins).

Peeking Under the Covers

Logitech and Slim Devices went the extra mile to make the Squeezebox platform controllable and extensible. The Squeezebox server ships with a telnet-addressable command-line interface. Telnet to port 9090 of your server, and you can control every aspect of your Squeezebox server and connected devices. You can learn more about the commands via the help documentation (Help→Technical Information→Command Line Interface). Better still, all of the SqueezeOS-based players (Squeezebox Radio, Touch and Duet) have an SSH server built in (which is turned off by default, but it can be enabled simply by navigating to Home→Settings→Advanced→Remote Login→Enable SSH). Once enabled, ssh to it with the default credentials (root/1234). Once inside, the best Message Of The Day (MOTD) I ever have seen is displayed:

This network device is for authorized use only. Unauthorized or improper use of this system may result in you hearing very bad music. If you do not consent to these terms, LOG OFF IMMEDIATELY.

Ha, only joking. Now that you have logged in feel free to change your root password using the 'passwd' command. You can safely modify any of the files on this system. A factory reset (press and hold add on power on) will remove all your modifications and revert to the installed firmware.

Once you've logged in, you have access to all of the internals of the Squeezebox device. This is one of the most forward-thinking moves I've seen from any hardware manufacturer. It came in handy for diagnosing some trouble I had with alarms on the Squeezebox Radio. (When was the last time you ran tail on your alarm clock?) Logitech even releases the source code for SqueezeOS and includes instructions on how to build and flash the firmware (handy for those of you who never run stock-anything on your hardware).

If you really want to dig in to the capabilities of the Logitech platform, the server ships with some of the most comprehensive documentation I have ever seen for a hardware product. Logitech ships the Media Server with gorgeous and thorough documentation. Hidden under the normally useless moniker of “Help”, Logitech provides a comprehensive pile of documentation about the internals of the Squeezebox Protocol, how to create skins for the server, how to create plugins for the Media Server, the display API, and so much more. There is also documentation for xPL, which is an automation protocol I learned about while skimming the documentation. The server can support xPL calls via enabling a plugin. With some hardware hacking, it's entirely possible to set up near-field communications with a device that notifies your Media Server to play “The Imperial March” from Star Wars on all of your Squeezebox devices whenever you come home. (Note: the author takes no responsibility for the other residents' reactions if you do this.)

I hope this taste of the Squeezebox Platform inspires you at least to download the server and one of the software clients. I know it has opened up a world of possibilities for my music listening. Few of the solutions I've tried boast the interconnectivity of the Squeezebox platform. None of them come close to the openness and control of the Squeezebox. Using your phone or Web browser to control every music player in your house is a liberating experience. Being able to listen to the same collection of music and radio streams remotely from my home machine is like a dream come true for me. Having permission to play, tinker and expand the platform (with excellent documentation and a full open-source stack) is unheard of in the higher-end audio space. May your exploration of the Logitech Squeezebox Platform make your listening experience more enjoyable.

Acknowledgements

Special thanks to Logitech Corporation for its assistance with this article.

Craig Maloney is the host of Open Metalcast (a Creative Commons Metal Podcast at openmetalcast.com) and the co-host of Lococast.net. He's also the contact for the Ubuntu Michigan Loco, and board member for the Michigan UNIX Users Group. When he's not listening to music on his Squeezebox, he's enjoying time with his lovely wife JoDee, developing stuff only a compiler could love, and playing various tabletop and computer games. He can be reached at his site: decafbad.net.

LJ Archive