Tuesday, 16 July 2013

Review: Rocking out with Rockbox

A few months ago I wrote a review of the Sansa Clip Zip audio player. That review was based on the manufacturer's software. I have now installed the third-party, open-source Rockbox software on the player, and the capabilities of the device are now different. This calls for another review.

Rockbox is available for a number of audio players. To use Rockbox, you perform a "firmware update" using a file from the manufacturer that has been modified to install the Rockbox bootloader. This makes the device "dual boot". When you switch it on, you can boot into either the original software, or the new Rockbox software. I suppose it is a little like "jail-breaking" a phone, though the Sansa Clip Zip does not make any attempt to stop you doing it.

I installed Rockbox because I had become frustrated by this:
"Refreshing your media"? Hope you don't
want to listen to your music any time soon.
When the Sansa software thinks that files may have been added or removed from your music library, it scans all of the files on the device to build an index. You see the "Refreshing your media" screen if you insert or remove the SD card, or if you connect the device to your PC.

In principle, the music library index is a good idea. It allows you to find files by artist name, album name and track name, even if the actual arrangement of files on the device is totally chaotic. The index is made from the metadata associated with each file - the ID3 tags, to be exact - which contain identifying information.

Unfortunately, the Sansa indexing process is very slow. On my device, it takes about 8 minutes. I strongly suspect that it has been implemented badly, using inefficient algorithms and data structures which do not scale well to many gigabytes of music in thousands of files. It was suggested elsewhere that the index builder may struggle to read certain sorts of tag, but I normalised all of the tags in my collection to the ID3v2.3 format with no observable improvement.

Unfortunately (again) the indexing process can't be skipped. You can't use an old version of the index. You must wait for a rebuild.

Unfortunately (again, again) the indexing process can be triggered by small mechanical shocks, if those shocks give the impression that the SD card has been removed and replaced.

On several visits to the gym, I found myself without music because the player insisted on re-indexing before it would play anything.

Rockbox solves that. Rockbox's indexing process is optional and can run in the background. While it is running, you can still play music by looking through the files and directories on the device. Rockbox's indexing process also runs very quickly. The same files that took 8 minutes with the original software are indexed in under 30 seconds... not that this greatly matters, because I'm not forced to re-index in any case.
The experience of installing Rockbox is rather like installing Linux for the first time. After the installation, things are... different. Some differences are superficial, others are subtle. For instance, the menus look different, the font is smaller, and the buttons work differently. The key presses needed to access the library while playing a track are different; the meaning of the "back" and "power" buttons changes. There was a short period of frustration as I adapted to the differences between Rockbox and the original Sansa software.

The Rockbox user interface is more complex. There are more features, many obscure. More file formats are supported - for instance, the Rockbox software can play .MOD, .XM and .IT tracker files, which are of no interest to 99% of the population, but rather appeal to me. Rockbox is also able to speed-change and pitch-shift - a handy feature for gym use, because you can change the BPM of a track as you listen to it. (I found that 90s dance music goes particularly well with the treadmill if slowed to 70-80% of its original speed - but all sorts of music sounds quite different when slowed, and it's fun to experiment with this way of listening.)

You can write addon applications ("plugins") and Rockbox is bundled with a number of these. Some have no obvious purpose, though the games are playable, even Rockbox Doom:
Rockbox Doom (UI simulator screenshot)

Rockbox offers many, many configurable options - fortunately, the defaults are sensible. It is possible to install "themes", and I have installed the "Doppelgaenger" theme which looks similar to the original Sansa software:
Doppelgaenger theme: similar to the original Sansa
software, and with an easy-to-read font.
Needless to say, the EU-mandated volume restrictions aren't implemented by Rockbox.

Speaking of anti-features, I understand that one disadvantage of Rockbox may be that DRM'd content is not playable. This would primarily affect audio books ("Audible"). Theoretically, if you want to listen to audio books, you can reboot into the original software to play them. But this may not work, because the original software was modified to install the Rockbox bootloader, and the modifications may upset DRM software. Mileage may vary.


On the Sansa Clip Zip, Rockbox also has the disadvantage of buggy USB support. The device does not always become accessible when connected to my PC. The player may have crashed, a tiny "black screen of death" on its screen. This forces me to hold the power button down for 30 seconds until it reboots. This is annoying, but it only happens at home when I want to load new music onto the device.

Bugs of this sort could be fixed by anyone contributing to Rockbox. Perhaps I could debug and fix the problem, if I had time. I did fix a smaller bug in Rockbox related to album artwork, but this was an easy sort of bug to find and fix, being reproducible in the PC-based Rockbox "UI simulator". A USB stack is no fun to debug, particularly on a device with a limited user interface.

On the whole, I am glad that I installed Rockbox, and have not returned to the original software. Rockbox on the Sansa Clip Zip solves the major design flaw with the Sansa players, namely "Refreshing your media", and it adds features that are useful to me, such as pitch/speed shifting and support for obscure music formats. Perhaps it would also be useful to you, particularly if you're the sort of person who installed Linux on your PC and wasn't totally put off by that experience. In any event, be prepared for an adjustment period as you adapt to the Rockbox user interface.