Haben Sie noch einen alten Rechner mit 16 MB RAM und Pentium-100-Prozessor in der Ecke stehen? Wenn Sie diesem eine von Linux unterstützte Soundkarte spendieren, wird mit mp3blaster ein schlanker MP3-Player daraus.
out of the box
Es gibt tausende Tools und Utilities für Linux. “out of the box” pickt sich die Rosinen raus und stellt pro Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten.
So schön XMMS mit seinen diversen grafischen Effekten und Ausgabe-Plugins auch ist, so viel Ballast schleppt es in Form von Bibliotheksabhängigkeiten mit sich. Neben dem X-Window-System muss eine Vielzahl zusätzlicher Dateien installiert sein. Für mp3blaster von Bram Avontuur reicht dagegen die Textkonsole aus, die eine durchaus übersichtliche Anzeige ermöglicht.
Partitur
Wer mp3blaster selbst kompilieren will, muss sich von http://www.stack.nl/~brama/mp3blaster/ (oder von der Heft-CD) den Quelltext als komprimiertes tar-Archiv besorgen. Ferner sollten Sie den GNU-C++-Compiler g++, die ncurses-Bibliothek sowie die nötigen Header-Dateien installiert haben.
Dank configure-Skript gibt es beim Kompilieren der mp3blaster-Quellen nicht viel zu tun:
tar xzf mp3blaster-3.0.tar.gz cd mp3blaster-3.0 ./configure make su (root-Passwort eingeben) make install-strip exit
Dirigent
Hat alles geklappt, befindet sich das ausführbare Programm im Verzeichnis /usr/local/bin; weitere Dateien gelangen beim make install-strip ins Verzeichnis /usr/local/share/mp3blaster. Von dort kopieren Sie die Beispielkonfiguration sample.mp3blasterrc_for_x mit dem Kommando
cp /usr/local/share/mp3blaster/sample.mp3blasterrc_for_x ~/.mp3blasterrc
in Ihr Home-Verzeichnis. Über diese Datei lässt sich das Programm anpassen, was wir später ausnutzen werden. Der Unterschied zwischen den Beispielkonfigurationen sample.mp3blasterrc und sample.mp3blasterrc_for_x besteht darin, dass letztere größtenteils auf den Einsatz von Funktionstasten verzichtet, die leider nur in der Textkonsole, nicht aber in einem X-Terminal funktionieren.
Geben Sie nun mp3blaster als Shell-Kommando ein. Ihr neuer Konsolen-MP3-Player meldet sich zunächst im Playlist-Modus (Abbildung 1). Mit [ 1 ] Select Files wechseln Sie in den Dateiauswahl-Modus (Abbildung 2) und auch wieder zurück zur Abspielliste.
Diese beiden Modi stellen alle Bedienelemente des Players zur Verfügung. Im Playlist-Modus steuern Sie das Abspielen (Tasten [p],[s],[ 4 ] und [ 6 ]) und Anordnen ([Leer],[M] und [m]) der Playlist, während der Dateiauswahl-Modus es überhaupt erst erlaubt, eine Abspielliste zusammenzustellen.
Unabhängig vom Modus teilt sich die Anzeige vertikal in vier Bereiche auf. Von oben nach unten sind dies eine Hilfe zu den Tastenfunktionen, eine Information zum Spielmodus (Playlist) bzw. zur Sortierung (Dateiauswahl), die Angabe der aktuellen Gruppe (dieser Begriff bezeichnet eine Zusammenfassung mehrerer Songs) im Playlist-Modus oder des “Arbeitsverzeichnisses” (Dateiauswahl) sowie die momentan laufende MP3-Datei. Die dreigeteilte Spalte auf der rechten Seite wiederum besteht aus Angaben über die Art der MP3-Datei und den Spielmodus für die aktuelle Gruppe sowie einem kleinen Mixer.
Tutti
Von einigen anderen MP3-Playern unterscheidet sich mp3blaster auch durch die Aufteilung der Playlist in Gruppen. Die einfachste Methode zum Erstellen einer neuen Abspielliste geht über den Auswahlpunkt [ 5 ] Add Dirs As Groups. Damit erzeugt das Programm für jedes Unterverzeichnis der aktuellen Dateiansicht eine eigene Gruppe.
Doch was bringt diese Gruppierung? In erster Linie treffen Sie damit Vorauswahlen für das Abspielen in zufälliger Reihenfolge (Shuffle). Mit [ 8 ] Toggle Play Mode erlaubt mp3blaster eine Änderung des globalen Abspielverhaltens (Shuffle über alle Songs aller Gruppen, Spielen einer Gruppe mit Untergruppen, Wiedergabe einer Gruppe ohne Untergruppen). Innerhalb einer Gruppe wirkt die Einstellung [ 7 ] Toggle GroupShuffle. Wollen Sie also die MP3-Dateien aller Gruppen so abspielen, dass deren Reihenfolge gewahrt bleibt, aber die Musikstücke innerhalb einer Gruppe zufällig ausfällt, wählen sie als globalen Abspielmodus Play current group, including subgroups und schalten GroupShuffle ein.
Frutti
Sie können im Playlist-Modus mit [ 2 ] Add Group auch neue, leere Gruppen erzeugen und diese dann im Dateiauswahlmodus mit einzeln ausgewählten Songs füllen. Der Name jeder Gruppe lässt sich mit [ 5 ] Set Group Title jederzeit ändern, sogar während MP3-Dateien abgespielt werden. Auch das Hinzufügen von Songs zur Gruppe ist bei laufender Wiedergabe möglich. Haben Sie eine Playlist zu Ihrer Zufriedenheit erstellt, speichern Sie sie mit [ w ] Write Playlist. Dabei wird auch der eingestellte Play Mode mit archiviert. Die entstehende Datei hört automatisch auf die Dateiendung .lst.
Wie die mp3blaster–Manpage verrät, kennt das Programm verschiedene Funktionsumschalter, die beim Aufruf als Optionen angegeben werden können. Sehr nützlich für das Abspielen gespeicherter Playlisten ist das Flag -a (“autolist”). Bei einer dahinter stehenden Argument-Datei handelt es sich um eine Abspielliste, deren Stücke der Player ohne zu Zögern wiedergibt. So spielt das Kommando
mp3blaster -a alles.lst
die Liste alles.lst automatisch ab, ohne dass Sie dafür [ 9 ] Start/Stop Playlist drücken müssen.
Stimmgabel
Über die Datei .mp3blasterrc in Ihrem Home-Verzeichnis nehmen Sie individuelle Anpassungen im Erscheinungsbild und Verhalten von mp3blaster vor. Auch hier hilft ein Blick in die Manpage weiter. Außer Farbgebung und Tastaturbelegung können Sie beispielsweise noch ein paar Spezialfeatures einschalten. So zeigt das Programm durch die Angabe
File.ID3Names = yes
im Dateiauswahlmodus zusätzlich die ID3-Tags der Songs an, wenn Sie die Anzeige mit [ f ] Toggle File Display umschalten. Zum Setzen und Anschauen dieser Tags bringt mp3blaster übrigens das eigenständige Programm mp3tag mit (Abbildung 3).
Die für diesen Artikel verwendete Konfigurationsdatei finden Sie übrigens unter dem Namen mp3blasterrc-LU auf der Heft-CD. Einen Konfigurationseintrag für den blauen Hintergrund suchen Sie darin allerdings vergebens: Er ist auf das – vor dem mp3blaster-Aufruf eingegebene – Kommando setterm -background blue -store zurückzuführen.
Music on boot
Sie wollten sich den Boot-Vorgang Ihres Rechners schon immer mal von Musik untermalen lassen? Abenteuerlustige haben die Möglichkeit, mp3blaster ohne Login direkt beim Hochfahren des Linux-Systems starten zu lassen. Wir bedienen uns dazu der Datei /etc/inittab, die die grundlegende Konfiguration von enthält.
Da die ersten sieben Textkonsolen bei gängigen Distributionen durch Login-Prompt und X-Server belegt sind, verwenden Sie für Ihren MP3-Player die achte Konsole /dev/tty8. Dazu tragen Sie die Zeile
M8:2345:respawn:/usr/local/bin/mp3blaster </dev/tty8 >/dev/tty8
als root in die /etc/inittab ein. Sie sorgt dafür, dass der Player beim Booten startet und nach Beenden mit q sofort wieder neu aufgerufen wird (respawn). Ein Schönheitsfehler stört allerdings noch: Das Programm wird – sicherheitstechnisch bedenklich – mit root-Rechten gestartet. Schnelle Abhilfe schafft hier das Setzen des SUID-Bits und das Übereignen der Datei /usr/local/bin/mp3blaster an den User nobody:
chown nobody.nogroup /usr/local/bin/mp3blaster chmod 6755 /usr/local/bin/mp3blaster
Jetzt wird mp3blaster grundsätzlich mit den Rechten des (unprivilegierten) Users nobody ausgeführt, was unerlaubtes Schreiben in Systemverzeichnisse verhindern sollte.
Glossar
-
Textkonsole
-
Parallel zur grafischen Oberfläche (X) laufen auf einem Linux-System üblicherweise auch mehrere Konsolen im Textmodus. Von laufendem X aus erreichen Sie diese mit [Strg-Alt-F1] bis [F6]. Zurück zu X kommen Sie bei den meisten Distributionen mit [Alt-F7].
-
tar
-
Der “tape archiver”, das Standard-Archivierungsprogramm unter Unix. Mit ihm werden ganze Verzeichnisstrukturen zu einer einzelnen Datei verschmolzen, die z. B. auf Magnetband (daher der Name) geschrieben oder komprimiert werden kann.
-
ncurses
-
Eine Bibliothek zur terminalabhängigen Ausgabe von Text und Steuersequenzen zur Cursor-Positionierung, Farbumschaltung etc. Sie löst die ältere Termcap-Bibliothek ab.
-
Header-Dateien
-
In Header- oder Include-Dateien sind die in einer Bibliothek verfügbaren Funktionen nebst Parametern aufgelistet. Der C(++)-Compiler braucht diese Information beim Übersetzen eines Programms. Bei den gängigen Distributionen enthält ein Header-Paket zu einer Bibliothek üblicherweise den Zusatz “dev” oder “devel” im Namen.
-
configure-Skript
-
Dient zum automatischen Auswerten von Eigenschaften des Systems, auf dem ein Quelltext kompiliert werden soll. So findet configure z. B. selbstständig heraus, welcher C(++)-Compiler installiert ist. Mit Hilfe dieses Werkzeugs ist es möglich, plattformübergreifend geschriebene Software auf verschiedenen (meist Unix-) Systemen zu kompilieren, ohne per Hand Änderungen vornehmen zu müssen.
-
Manpage
-
Linux besitzt wie alle Unix-Systeme eine Art Online-Referenzhandbuch für die installierten Programme. Diese Hilfe wird mit “man programmname” aufgerufen, z. B. “man mp3blaster”.
-
Home-Verzeichnis
-
Das persönliche Heimatverzeichnis eines Benutzers. Darin landet er nach erfolgreicher Anmeldung oder mit dem Kommando cd (ohne weitere Parameter).
-
Ein kleines Datenanhängsel für MP3-Dateien, in dem sich zusätzliche Informationen wie Erscheinungsjahr, Musikgenre etc. speichern lassen. Viele MP3-Spieler werten diese Information aus und können sie darstellen.
-
init
-
Dieses Programm wird beim Booten als erstes vom Kernel gestartet und übernimmt den restlichen Initialisierungsvorgang. Üblicherweise sorgt es dafür, dass auf den Textkonsolen die getty-Prozesse laufen, die für die Login-Prompts sorgen.
-
SUID
-
Das “Set User ID”-Bit. Ist dieses in den Rechten einer ausführbaren Datei gesetzt, so wird sie grundsätzlich mit den Zugriffsrechten ihres Besitzers ausgeführt. Aus Sicherheitsgründen hat das SUID-Bit bei Shell-Skripten keine Wirkung.








