Daily Archives: July 6, 2009

An Update on the Music Player Quest

I’ve written a few times (parts 1, 2, 3) about my annoyance at music players. I’d come down to two finalists to consider: Rhythmbox and Banshee. I’ve used both for awhile now, and as of today, am also trying Songbird (after finally managing to make it run; see part 3 above).

In addition to my previous observations, then, I’ll add:

Rhythmbox

Two problems exist in the current version. The first is that playlists aren’t sortable, which is annoying for those of us that use them as an organization tool. I put a patch in bug 327042, but the authors say they won’t apply it, and there has been no recent activity from anyone working to do something better. Highly annoying, but I’m running my own patched copy anyhow.

More annoying is that it doesn’t let you modify metadata of tracks on the iPod. Perhaps worse, its GUI lets you remove tracks from iPod playlists, but this change is not saved back to the iPod (bug 586964). Confusingly, adding tracks to playlists does get saved. There has been no action on that bug in the 1.5 weeks since I’ve reported it.

I was able to supply the Rhythmbox developers with the needed information to resolve the issue of moving files to .Trash-1000 instead of deleting them on the iPod (586649). However, they refuse to fix the larger problem of leaving these directories on the filesystem; a great annoyance for people using KDE or no desktop environment at all.

Banshee

On the surface, its iPod support looks even better than Rhythmbox. Yet it silently ignores some (not all) metadata changes. You can modify a rating, a compilation artist, etc. and it will look like it changed. But close Banshee and open it up again and you see it wasn’t. (Bugs 580632, 389550) They’ve done some troubleshooting with me, but there hasn’t been activity there since June 30.

Songbird

Aside from my story today griping that it doesn’t even start by default on Linux, I haven’t written about this one before. Its philosophy is somewhat similar to Thunderbird: ship with a very minimalistic set of features, and support multiple addons.

I found that its iPod support works the best of any of these I’ve mentioned, at least for manually-managed iPods. It has a feature to sync your iPod, but has no documentation whatsoever on what that does. It also doesn’t document what it will do with the FLACs I’ve downloaded from Magnatune when it puts them on the iPod. The only references I’ve seen to transcoding state that it will be present in 1.2.0 (which I have), and that it won’t be present until August. Not very helpful.

With a few addons, it makes a quite nice player, with quite good iPod support. The interface, however, has a few quirks. First off, it’s really sluggish, even on very fast hardware. Secondly, if you flip from playlist to playlist, or even breathe on it the wrong way, it will move you back to the top of the playlist you’re on, leaving you to manually find the track that’s playing again. It has no “jump to currently-playing track” feature like other players do. Its tray icon (which you must get an addon for) has a basic menu of play, pause, next, but no ability to set ratings from there. Also, sometimes setting ratings don’t appear to work from the UI, but might have actually been saved anyhow.

Overall, though, Songbird looks like my best bet for the moment. I’ll keep using it and see what I think.

The other option is gtkpod+audacious. I’d miss the integration of player with browser, and gtkpod’s extremely sluggish interface makes even Songbird look like a Formula 1 car in comparison. But its iPod support works well (though its attempts to sync with the filesystem are undocumented and cause issues more than once).

Songbird: How To Make Great Software Unpopular

As part of my ongoing quest for working media players, I’ve more than once tried Songbird. But it never wanted to work in Linux, always crashing before it even fired up the GUI with errors like this:

(songbird-bin:17595): libgnomevfs-WARNING **: Cannot load module `/usr/lib/gnome-vfs-2.0/modules/libmapping.so' (/usr/lib/gnome-vfs-2.0/modules/libmapping.so: cannot open shared object file: No such file or directory)
././songbird-bin: symbol lookup error: /usr/lib/python2.5/site-packages/gst-0.10/gst/_gst.so: undefined symbol: gst_xml_get_type
Could not initialize GStreamer: Error re-scanning registry , child terminated by signal

Googling reveals dozens of threads about this among Debian, Ubuntu, Fedora… well, ALL Linux users. Some people reported success removing bits of GStreamer from their systems, but that didn’t work for me.

I noticed that the Linux binary distribution of Songbird contains a lib/ directory, which has, among other things, full copies of many GStreamer libraries, libvorbis, libFLAC, libogg, libtheoradec/enc, and more. On a lark, I ran rm lib/libgst*. And that fixed Songbird.

Now, that gets me to the point of why Songbird isn’t popular on Linux, a fact which appears to mystify the Songbird developers from the posts I’ve read.

And the reason is: Songbird doesn’t work on Linux out of the box. More to the point, Songbird tries to distribute itself on Linux as if the user is running on Windows.

You do not install a local gstreamer with each app on Linux; you use the system’s. You don’t try to use a local copy of everything; you use the systems. Even songbird plugins package their own .so of files I already have installed system-wide. The Linux shared library system can handle it, I promise.

And even worse, the fact that they are trying to use local copies of things instead of system ones are making it very difficult for distributions to package up Songbird. Distributions — the ones that care about quality, anyhow — want to do things The Right Way, which means only one copy of GStreamer on the system. Songbird doesn’t want to get along well with this. None of Debian, Ubuntu, or Fedora have Songbird packages in their repositories, though third-party packages of greatly varying quality exist for each. Read their respective bug tracking systems and you’ll see that it has to do with Songbird wanting local versions of system-wide libraries.

So, Songbird folks: If you want to make a cross-platform app, please stop treating Linux as if its library system is as broken as Windows. It wasn’t until you got here.

Aside from that, it looks like the best music player I’ve tried yet, despite its sluggish interface.

Update: The original version of this article incorrectly stated that Songbird was a Mozilla project.