Qball's Weblog

Squishybox – A better squeezebox touch experience.

Tags Squishybox 


This project started mainly because of 3 reasons:

Need for a small, energy efficient MPD Box.

For a long time I have been searchin for a nice small box that could run Music Player Daemon (link). The box needed to have the following minimum set of features:

The Squeezebox Touch seemed to fit this perfectly.

No alternative for MPD.

I bought a Squeezebox Classic, because it seemed to be a nice device. Good readable display, good output, remote control, etc. However it turned out to be a failure. The problem was not with the hardware but the crappy software squeezecenter (it is currently called). My home server, a 1.5 Ghz via esther with 1 gig of memory, is to slow to run it properly. An intel core 2 duo 1.8Ghz was doable, but far from snappy and fast. In my honest opinion a simple music ‘server’ should not require a full fledged desktop cpu with several gig’s of ram. The sonos system is way to expensive. So something to run MPD on seemed to be the best solution.

Great donation!

It seemed I was not the only one looking for a good MPD box. Nick kindly donated me a Logitech Squeezebox Touch. (Thanks again). This allowed me to start developing this project.

Goal of the project.

In short the goals are:


Music Player Daemon (MPD) is a flexible, powerful, server-side application for playing music. Through plugins and libraries it can play a variety of sound files while being controlled by its network protocol.


Because CPU power is limited, there is no hardware acceleration a simple client is needed. Jive (or squeezeplay) is written using SDL and this seems like a good tool-set to base our gui on:

Trying out the GUI

!! This code is Proof-of-concept code. It is written to test out what is and isn’t possible.

The GUI can be ran on a normal pc. The touch input is replaced by mouse input, and the infrared input is replaced by keyboard strokes.


The Main window:

The Now Playing screen:

The Playlist:

The Server Menu:


Keyboard command

The code can be found on github: (link)