May 4, 2004

Free Software's new audio heir apparent

Author: Brice Burgess

While proprietary OSs have been blessed by an onslaught of competing audio players, the Free Software world has remained relatively stagnant since XMMS was released in 1997. Recently, however, there has been a lot of development work surrounding Free Software media players. I ran across several audio programs worth looking into, including mpd, muine, and musikcube, but the most promising program I found is Rhythmbox.

Many of us have large digital music collections, and Free Software's most popular media player, XMMS, along with its relatives, are ineffective tools for dealing with larger libraries. Hunting through a directory hierarchy to find all versions of Sunny Side of the Street on your computer can be an excruciatingly tedious task. We need the power of the database to efficiently handle on-demand access to music. In fact, being able to access music in any way imaginable is the main benefit of a digitized music collection. Rhythmbox is database-driven, and its performance is impressive.

Rhythmbox is comparable to Apple's iTunes in that it concentrates on organizing your music collection and making it easier to navigate through it. It is not intended to be an eye-candy skinnable player that goes hand in hand with dark rooms, black lights, and glow sticks. The program has advanced playlist functionality which reads the identification tags of MP3, OGG, and other formats playable by the up-and-coming GStreamer -- a powerful open source multimedia framework multimedia framework. Rhythmbox uses these tags in order to sort your music by title, genre, artist, or album. Further, You can select songs by running a simple yet powerful search filter on your collection, rate songs, and create multiple playlists. The program's clean and intuitive interface combined with its power and performance make Rhythmbox a pleasure to use.

Rhythmbox 0.8.1 Interface -- click to enlarge

I wanted a program that would be able to handle my 33.8 listening days of music; Rhythmbox could. Soon after I "imported" the directory, containing 65GB worth of MP3s, the program was ready to roll. Other programs I tried, such as the Free*mp-based Zinf, used to take about 7 minutes trying to import all my files before finally crashing. Rhythmbox was able to correctly parse all of my files in less than 2 minutes, so something right must be going on underneath the hood. Despite the fact that its most current version is only 0.8.1, the program has been very stable and has remained my daily player for nearly a month.

Rhythmbox lacks some features I'd like. For starters, I'd like the ability to pick which directories should be scanned for new, removed, or changed files, so that Rhythmbox does not have to refresh the entire database upon its initial launch. Although it is able to refresh my collection in less than 30 seconds, it still uses unnecessary disk I/O and CPU utilization. Also, it would be nice to be able to conveniently hide, add, and re-order entries in the song-playing queue. Lastly, I need to do ID3 tag editing, because sometimes CDs I import aren't on CDDB, and I have to add track information (artist, genre, title, track #, etc.) manually. I want to be able to do this from within Rhythmbox.

The good news is that Rhythmbox is being actively developed and maintained by Colin Walters and others. The developers say the upcoming 0.9 release will have more effective "file monitoring," which will likely address two of my issues. GStreamer hacker Benjamin Otte has contributed an experimental back end based on SQLite -- an embedded C library database originally developed by Dr. Richard Hipp while working with the U.S. Navy. This addition should increase performance and allow for more powerful and complex filtering options. By the the time the 1.0 release rolls around (scheduled to coincide with the release of GNOME 2.8), we can expect an excellent Free Software audio player based on the upcoming GStreamer framework.

Rhythmbox is still in developmental status, meaning you may experience difficulty getting it working. Don't let this deter you; you can gain a lot from experimenting with open source developmental software. You may learn something about compilation, help squash a bug, or come up with a viable suggestion that will make it into the first stable release.

RPM binary packages are available from Dag Wieers' repository and .DEBs can be found in the main Debian unstable archive. These packages are unofficial and tend to be outdated, although they make things easy to install and may work for you.

Rather than use binary packages, I recommend compiling from the latest source of Rhythmbox. To do so, you'll need GTK 2.2 or higher, GStreamer or Xine, libid3tag, and optionally libvorbis for OGG and libflac for FLAC. Fortunately these requirements are likely to be available through your Linux distribution's binary package management program and should be easy to install. You can get the latest source of Rhythmbox from the project's download page. If you run into any problems, read all documentation that came with the source (README files, etc.), the FAQ, and check the Rhythmbox-Devel mailing list archives. There are also friendly people in the #rhythmbox channel on irc.gnome.org who can help via IRC.

Click Here!