+++
title = "Was ist XMMS2?"
date = "2009-06-23T12:47:00+00:00"
author = "Gibheer"
draft = false
+++

Ich wurde gestern gefragt, was [XMMS2](http://xmms2.xmms.se) eigentlich
sein soll und warum ich ihn in meinem Beitrag &uuml;ber Rack und XMMS2
benutzt habe.

etwas Geschichte
================

Der alte XMMS, der seit einigen Jahren nicht mehr aktiv weiterentwickelt
wird, war der klassische Musikplayer. Er hatte ein Frontend, das an
Winamp erinnerte, konnte dessen Styles verwenden und hatte Unmengen an
Plugins. Irgendwann fanden sich andere Entwickler, die einen Nachbau von
XMMS begonnen hatten und nun unter dem Namen Audacious verf&uuml;gbar
ist. Die gentoo-Entwickler gaben Audacious irgendwann den Vorzug und
XMMS verschwand aus dem Portage.

Als der XMMS verschwunden war, probierte ich erstmal Audacious aus, der
zu dem Zeitpunkt allerdings viele Bugs hatte und bei weitem nicht an das
Vorbild heran kam. So konnte er nicht meinen kompletten Musikordner
laden, sondern schmierte zwischendurch einfach ab.

Deswegen schaute ich mir mal an, was die XMMS-Entwickler eigentlich tun.
So ein großartiges Projekt stellt man ja nicht ohne weiteres ein, wenn
die Entwickler noch vorhanden sind. Und sie arbeiteten an XMMS2.

Nachfolger
==========

Als erstes Vorweg, XMMS2 ist kein Nachfolger des XMMS. Er sieht nicht
nur anders aus, auch die Funktionen unterscheiden sich teilweise
erheblich.

XMMS2 ist eine komplette Neuentwicklung eines Musikplayers, der ein
anderes Konzept verfolgt. Denn anders als beim XMMS, steht die Ausgabe
und Verwaltung der Musik im Vordergrund.

Dazu wurde der Player in eine Serverapplikation verlagert, die durch die
User gestartet werden muss. Sobald der Server einmal läuft, kann ueber
einen Client, auf den Server zugegriffen werden.

Da sich aber, wie so oft, die Geschmaecker unterscheiden, gibt es bei
der Grundinstallation nur einen Konsolenclient dazu, der allerdings die
volle Funktionalität abdeckt. Weitere Clients können problemlos in fast
jeder beliebigen Sprache geschrieben werden. Es gibt Sprachanbindungen
fuer Java, Mono, Ruby, Python, Perl, C++ und einige weitere. Eine eigene
Sprachanbindung kann auch verwirklicht werden, so lang man die Library
in C schreiben kann, wie zum Beispiel bei TCL.

Es gibt schon eine vielzahl von
[Clients](http://wiki.xmms2.xmms.se/wiki/Clients), die benutzt werden
koennen. Zudem gibt es Installationspakete in Debian, Ubuntu, Archlinux
und einigen anderen Distributionen.

Der Vorteil der Serverarchitektur liegt fuer mich darin, dass ich den
Deamon starten kann, ohne dass ich unbedingt einen Client am laufen
haben muss, der die ganze Zeit in der Programmleiste herumlungert. Da
ich den Server über Konsole steuern kann und ich sowieso sehr viele
Konsolen offen habe, ist es für mich ein leichtes, den Player zu
bedienen. Ich habe mich auch über die Python-Bindings eine Anbindung
fuer X-Chat an XMMS2 geschrieben, um Leute mit meinem Lied zu nerven
oder XMMS2 zu bedienen.

Neben den Anbindungen für die vielen Programmiersprachen, bietet XMMS2
auch noch ein paar sehr nette Funktionen. So wird im Hintergrund eine
Mediendatenbank verwaltet, in der man schnell nach Informationen zu
Liedern suchen kann, wie zum Beispiel Artist, Songtitel,
Erscheinungsjahr usw. Diese Informationen werden aus den Dateien selbst
heraus gelesen. Das bedeutet, dass zusätzliche Informationen, wie sie
zum Beispiel bei ogg-files hinterlegt werden können, auch in der
Datenbank enthalten sind.

Zusätzlich kann man die Daten der Lieder ändern, nach dem Suchen in die
Playlist laden und so weiter.

XMMS2 bietet auch die Möglichkeit mehrere Playlists zu verwalten, ohne
jedoch immer wieder die Playlisten über pls-files zu laden. Diese sind,
im Falle des Konsolen Clients, einfach über den Namen erreichbar.

Eine echte Neuerung finde ich allerdings die
[Collections](http://wiki.xmms2.xmms.se/wiki/Collections). Collections
sollen dazu dienen, die eigene Musik besser verwalten zu können. So ist
zum Beispiel denkbar, dass man allen Liedern bestimmte Keywords gibt und
diese so je nach Stimmungslage auswählen kann oder das sogar der Client
merkt, wie die Stimmung des Zuhörers ist und er anhand der Collections
passende Musik heraussucht.

Ich bin leider noch nicht dazu gekommen, dieses Feature zu testen.
Deswegen weiß ich auch nicht, wie weit die Implementierung an dieser
Front ist. Wenn ich mal dazu komme, diese Funktion zu testen und ich ein
Ergebnis habe, werde ich das hier natürlich schreiben.

Fazit
=====

Der XMMS2 befindet sich immer noch in der Entwicklung, ist aber sehr gut
zu gebrauchen. Ich benutze seit über einem Jahr nur noch den XMMS2 und
bin vollauf zufrieden. Ich kann ihm eigentlich jedem Empfehlen, der
gerade auf der Suche nach einem neuen Player ist. Dabei ist es
eigentlich egal, ob ein Frontend von Nöten ist oder nicht, da es
durchaus schicke Frontends gibt.

Und ihr seht ja selbst, wie schnell es geht, einen eigenen Client fuer
diesen Player zu schreiben. Versucht das mal mit einem anderen Player
;o)
