I’m always looking for a good Linux media player because after switching to Ubuntu, I realize how much Winamp spoiled me for the 5+ years I used it. Sure it was a little bloated, but there was almost nothing it didn’t have and I wanted those features. Many Linux media players try too hard to copy iTunes and force you into an media library system that doesn’t apply to everyone.

So here are some quick reviews of media players I’ve tried. It’s biased for Gnome, since that’s what I use as my desktop.

I have a carefully organized, well-tagged mp3 library. I also have another folder where I dump random files and mp3s, so I want to browse both separately. last.fm support and media keys (pause/next/previous buttons on my keyboard) are also a must. Additional features are nice, but those are the only real requirements.

  • Songbird
    A decent interface, although I don’t understand why a media player would need a web browser. Doesn’t let me add files into anything but a single library, and there is no dynamic playlists or a file browser, so I can’t seperate my “good” mp3s from my “bad” mp3s. Plus I think it’s ugly, I wish it integrated with Gnome. Fail.
  • Aqualung
    Interesting concepts, allows multiple libraries. Unfortunately it crashes on me, and it’s difficult to use different libraries. I’d report more on the details but I can no longer get it to start. Plus it’s really ugly. Fail.
  • Audacious
    Almost featureless Winamp clone. It’s just a playlist really. Fail.
  • XMMS/XMMS2
    I remember XMMS being really terrible years ago, but I can’t find it in Ubuntu’s repository. Instead XMMS2 provides an extensive backend, but no decent frontend that I can find. Fail.
  • BMPx
    Interesting interface, but it only allows one library, and no file browser. Library is poor too. Fail.
  • BMP
    An incomplete restart of XMMS, developers moved on to other players and left this one behind. Mostly worthless. Fail.
  • Decibel Audio Player
    Supports all the features I want, and the file browser implementation is probably the most effective out of any I’ve ever seen, but playing mp3s in my library is difficult. I can’t just play them all, or play certain genres only, it could really use dynamic playlists. With some refinement and a few more features it could be great, but it currently it’s unusable. Fail.
  • Listen Music Player
    Impressive interface, has the features I require too. Unfortunately it’s very difficult to play anything. Everything is played through a single main playlist and rather than using the folder/playlist you’re actually using, you can only enqueue selections to the main playlist which is very annoying. It has a bizarre “dynamic” system to cover up for this flaw, which seems to just add random files from your library every so often. Huh? If they removed the main playlist altogether I’d really like it, but it’s apparently no longer in development. Fail.
  • Quod Libet
    Probably my favorite out of all these. It has all the features I want and more but lacks some refinements. It doesn’t assume anything, which allows me to manage my music as I see fit, something I really like, plus it’s the only one to handle all sorts of cool extended metadata. Unfortunately it doesn’t bother to remember enough of its own state when I close it, or do little things like hide all the windows when I hide the main window. The album list is terrible, and the dynamic playlists are actually annoying saved searches. With a couple minor tweaks and changes it would be the best, but it’s not quite there yet, and hasn’t been updated in a while. Half-fail.
  • Rhythmbox
    Very well made and effective. It only allows one library, but it allows multiple folders (you have to enter them manually in gconf-editor beause you can’t do it in Rhythmbox itself) and then seperate them using dynamic playlists. The only thing that really gets me is how slow it is because it insists on scanning every single non-audio file I have. In my “bad” mp3 section there are many non-audio files which are not meant to be scanned, but Rhythmbox scans them anyway, then reports them to me EVERY SINGLE TIME I start it up. It’s not an error, but Rhythmbox says it is anyway, all while trying to break down my hard drive as fast as possible. If they added a file browser, it would be perfectly fine. Half-fail.
  • amaroK
    I can’t stand KDE apps while using Gnome, and it’s very hard for me to overlook. Still, it has some really cool features no other player has. There’s only one library (collection), but it has a file browser. Like a lot of annoying media players there’s one main playlist which everything is enqueued on, but amaroK does it very well though so I suppose I could get used to it. In the end though, it doesn’t support my media keys (can’t set them for some reason) and it’s ugly as sin and difficult to use in Gnome. Fails on Gnome.
  • Banshee
    The current stable version is very ugly, and lacks some things I want, but an upcoming version is actually a lot more capable and has serious potential. Unfortunatly it’s too buggy to use right now. Maybe fail.
  • Exaile
    An amaroK clone for GTK/Gnome. Seems like it’d be perfect, but it ultimately forgot to clone amaroK’s uniqueness. It does have one advantage over amaroK though, you can have multiple “main” playlists open. What really killed it for me is all the annoying bugs, like one where it adds random mp3s to a playlist I have open. RIght now there’s a bug that hides all the entries in an open playlist from me. Fail.
  • Winamp
    Nobody said I couldn’t just use Winamp, right? It’s mostly compatable with wine. Unfortunatly, it doesn’t integrate well with Linux, lacks media key support, and wine forces an annoying border around the main window unless I disable desktop integration, which in turn disables the system tray icon. It’s just not the same on Linux, plus for some reason it’s incredibly slow. Fails on Linux.

Ultimately, my main problem is I use Gnome, since I think I’d be perfectly happy using amaroK, but I dislike KDE’s design choices so I’m unwilling to switch just to get at amaroK. Quod Libet, Decibel, Rhythmbox, and Banshee are all great players, but suffer from fatal flaws which keeps me switching from one player to the next.

Take these reviews lightly, I have very high standards and I just want them to work with the library I have, not the library they would like me to have.

EDIT: It’s been a while since I wrote this and it actually still gets hits, so here’s an addendum. The new version of Banshee kinda let me down with little things, mainly it’s file browser was annoying to use, and it still can’t handle the size of my library. Rhythmbox remained my imperfect but still effective solution. However, Quod Libet 2.1 fixed all the problems I had (except saved searches are still annoying), and has more than a few features I love that no other media player has. In my humble opinion, it’s the best.

I read this post on what not to do with private properties. It’s for Java, but applies to Flash as well. Apparently declaring a property is the “amateur” way to do it. This is how I would do it.

public class Person {
private var _age:int;
public function Person(age:int) {
_age = age;
}
public function birthday():void {
_age++;
}
}

According to this fellow, that’s bad practice. You should always use accessors! Why write short concise code when you can write three times as much? Instead of age, use getAge() and setAge() because apparently its a lot better to write setAge(getAge()+1), rather than write age++.

Flash’s accessors would allow you to write age++, but this is still the most disturbingly defensive code I’ve ever seen. It’s a private property! A class is supposed to be able to manage its own properties. It’s other classes you’re supposed to mistrust, not your own. If a class has become so big it requires this kind of nonsense that’s a pretty good sign it should be split up into smaller classes.

In my opinion his only valid complaint is that its easier to make breakpoints. Fortunatly most of the comments for that article disagree with his opinion.