Posted by: VxJasonxV | October 26, 2006

Gentoo removing XMMS? No big loss.

Active music listeners on Gentoo have began creating an uproar over the imminent doom of XMMS.

The current situation is that XMMS (the package), all it’s plugins (xmms-mad, xmms-arts, xmms-eq, xmms-spc, etc.) have been masked. If you’ve installed it, it’ll hand around, just don’t expect it to ever get updated. And don’t even bother filing bugs, xmms has gone unmaintained; many have tried, all of them have had to stop, hence why this issue on masking/removing xmms is coming around again. The xmms useflag is also masked on all packages that have it (hint: `equery hasuse xmms`). A few packages (mplayer, amarok) depend on elements of xmms if you had its use flag enabled, and they will be subsequently broken should xmms be purged from your system.

Forewarning Side Note:
If you unmerge xmms, and disable the xmms use flag, run revdep-rebuild IMMEDIATELY.
Insanity has a few more details that will help you to further this along.

This is quite an inconvenience, I agree, because XMMS is amazing. It was the first Linux music player I ever used, I loved it, it has an absolutely awesome arsenal of plugins for various functions, and supports so many audio formats it’s not even funny.
All of that would be fine, if xmms wasn’t so old and missing so many more important core functions.

Earlier this year, xmms finally frustrated me past my limit. From gtk crash bugs, to the absolutely nuisance of my mp3 files being -28519:0 in length. I asked around, and demo’ed a few of the alternatives.
Amarok was fun. It looked nice, it ran nice, it had absolutely excellent features, but unfortunately, it plays back and runs abysmally over a network share (may be Samba specific, I do use Samba mounts to my media drives). There were gaps between songs in the measure of seconds, terribly distracting when listening to a nonstop, even leisurely listening becomes aggrivated.

I used bmp and audacious, which had the same lackluster flare as xmms, except worse since a few key plugins were not compatible.

I tried JuK for a while, but that was just boring.

And then, after poking around at for a while, there was a newspost on a next generation “XMMS2” software currently in development. I’d link you directly to the article, but even the XMMS website is old and missing a few ‘nice’ features. Just hit up the website and hit end (Scroll to the bottom). You’ll see an entry labeled “XMMS2 Development Release 1”.

Being the bleeding edge type of person I am, and since I was still on the look out for a good alternative audio player, I took the plunge. After working it on my own for a while, I finally joined the #xmms2 chatroom (Freenode IRC) in order to torment the developers for all eternity.

Since then, I’ve found a new favorite audio player, for reasons stemming from concept, to structure, and the existence of the work that has been done, and is continuing to be done.

Before I go on, let me make one thing very very clear.
XMMS2 is NOT XMMS1. XMMS2 is a ground up rewrite, with drastically different ideas, and a drastically different design.
If you need XMMS1 features, and are not willing to change, stop reading this and go back to your XMMS1, or check out Audacious, or bmp/bmpX.

Frankly, I’m done. XMMS is old, and I stopped using Winamp ages ago (relevance: look, feel, functionality).
I moved to Foobar2000 before leaving Windows as my primary desktop, FB2K is miniscule and oh so flexible. If you haven’t figured that out already, remember it.

So, why I chose XMMS2 and why it’s seriously attractive:

  • XMMS2 is a client<->server based music player, not unlike MPD. (MPD fanboys, XMMS2 is not a fork, nor a “rip-off”, please see XMMS2 vs. MPD.
    This means that the server is the backbone to the system, and music plays where the server resides. ‘Clients’ send commands to the server, and the server reacts as necessary.
    XMMS2, when installed, has 2 things. The xmms2d (xmms2 daemon / music server), and the command line xmms2 binary, used to actually perform tasks. That’s it.
    No GUI, no ncurses based menuing / control system, no webterface, no nothing. Which brings me to my next point.
  • The choice, is yours!
    XMMS2 does not ship with software that you’re stuck in using. Gnome fans, go pick a GTK client.
    KDE fans, go pick a Qt client.
    Enlightenment fans, they have EFL based clients for you too.
    And of course, you pioneers of minimalism can pick out a console client which are bit easier to use than the cli binary that ships with xmms2 itself.
  • If a client doesn’t offer a feature you want (current hot item: cover/album art), pick a different one. If a client doesn’t work in {X,Y,Z} manner, pick a different one. If you use Gnome but the GTK clients suck, pick a Qt client. If you use KDE but the Qt clients suck, pick a GTK one. (Repeat ad nauseum for all remaining toolkits.)
  • One client is not meant to do everything, you will very highly have multiple “clients” running in tandem.
    A client is not a gui. A client is not a playback/playlist application. I regularily have 4 clients running (in no particular order):

    • xmms2-et; a ‘phone home’ client that reports usage data. Used mostly for new releases, to ensure all plugins are adequately tested. (Ships with XMMS2 core package.)
    • xmm2-scrobbler; as the name would suggest, this is a ruby-based xmms2 client that submits scrobbler entries to Audioscrobbler/ This client does not have a gui in any form, nor any interactivity. Set up your auth information, and it runs and runs and runs on it’s own accord.
    • gxmms2; a GTK client. This client is how I handle all my playlisting and playback control.
    • gx2osd; a GTKMM-based OSD client. Pops up a window for 3 seconds with the currently playing song, artist, and cover art (if present). Customizable, reorganizable, all around helpful.

    I also have special use clients, and clients I use for testing purposes / feedback to their respective authors.

    • Turbox2; a python based web interface client that was developed as part of Google’s Summer of Code. One of the many clients I decimated with the sheer size of my library, but was improved to get around the issue. Also features album art.
    • xmms2covers; do I really need to explain this one? Run it, it scrawls certain music repositories looking for art (includes CDs, Vinyls, front, back, jacket, and artist art).
    • Esperanza; an up and coming Qt4 client that is minimalist and highly functional in nature. Supports cover art, and Growl notifications (local and remote). Great for Mac users, or you can just forward the notifications to a Mac on your network.
    • Insanity; another python (pyGTK2, specifically) client that was also decimated in the past by the size of my medialib, but has rapidly improved to become another sleek and responsive client, offering a very different and clean look. Highly functional, subtle differences, but it works like a gem. Supports cover art too!

    There have been times in which I’ve run multiple playlist/playback clients at the same time (for example, gxmms2/insanity/esperanza simultaneously), and they all stay in sync for both the playback progress, as well as any playlist changes propagate through every client.

  • What does it all mean? It means that I can use whatever I want, you can use whatever you want, we’ll have a difference in client features and yet be using the same underlying software (gasp).
  • What this also means is that I can control XMMS2 from any computer, I don’t even need to have the server installed.
    XMMS2 also features TCP communication, so I can use any computer in my house, or do some ssh tunneling magic and use a computer outside of my house (handy for situations like using ices and being away from home).
    Oh right, did I mention that xmms2d can output in any of; alsa, jack, esd, or even ices?

I haven’t even touched the surface about xmms1’s lack of a medialib, xmms2’s prolific one with an excellent schema (what other client allows you to search ANY metadata located in your files? You tagging zealots that include Catalog number and publisher will have a field day with this feature), compatibility with decoding FLAC, MOD, APE, MP3, AAC, MPC, OGG, SID, WAV, WMA files, nor have I mentioned the fact that xmms2 can read from plain filesystem files, DAAP shares (read: iTunes music library on another computer), radio stations, MMS shares, HTTP URIs, and this is one messed up run-on sentence.

All I’m saying is that XMMS2 is under active development, and already has a great base to continue forth on. If you’re interested, start reading and get started.
Gentoo users, well maintained contributed ebuilds are located at Ycarus’ Site (I’ll ask him about getting his repo into layman, feel free to contact him and request the same).

Homebrew developers, I would absolutely love to see PSP and Nintendo DS playback/playlist clients, that would absolutely make my day.
Add in a little sound redirection magic on my end to pipe the sound output to my bedroom computer (instead of the main room computer which is where the server runs), and I’d be able to control the music from anywhere in my house and listen almost as prolifically too.

The bottom line? XMMS is old. Highly functional, and hugely popular, but all good things come to and end, and XMMS has had a great run.
Use whatever appeals to you, use whatever satisfies your needs; I know I am.


  1. […] is that all the processes on the server run like normal. (Obvious, but still cool.) gx2osd (see my previous post on the subject) ran like normal, which I noticed after after connecting over x11vnc to my desktop. […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: