[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Programme starten: Ein Programm starten] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [https://cmus.github.io/ cmus] {en} (C* Music Player) ist ein leichtgewichtiger [:Terminal:]-[:AudioPlayer:Audioplayer], der aus den Programmteilen '''cmus''' und '''cmus-remote''' besteht. Er ist in [wikipedia:C_(Programmiersprache):C] geschrieben, nutzt die freie Programmbibliothek [wikipedia:ncurses:] und ist [wikipedia:POSIX:]-kompatibel. cmus verfügt über einen großen Funktionsumfang, der dem vieler grafischer Player nicht nachsteht und ihn teilweise sogar übertrifft: cmus erlaubt u.a. die Wiedergabe lokaler Audiodateien und von [:Internetradio/Stationen:Internetradio], unterstützt Wiedergabelisten, legt eine durchsuchbare Bibliothek an und ist sehr umfangreich konfigurierbar. Da cmus kaum Ressourcen benötigt und ohne [:XServer:] auskommt, ist er sehr gut für ältere Computer geeignet. cmus unterstützt die unterbrechungsfreie Wiedergabe ([wikipedia:Gapless_Playback:Gapless Playback]) sowie [wikipedia:Replaygain:ReplayGain]; unterstützte Audio-Formate sind [:Vorbis:Ogg-Vorbis], [wikipedia:MP3:], [:FLAC:], [wikipedia:Musepack:], [wikipedia:WavPack:], [wikipedia:Wav:], [wikipedia:Advanced_Audio_Coding:AAC], [wikipedia:Apple_Lossless:ALAC], [wikipedia:Windows_Media_Audio:WMA], [wikipedia:Monkey's Audio:APE], [wikipedia:True Audio:TTA], [wikipedia:Shorten:SHN] und [wikipedia:Mod (Dateiformat):MODs]. Ein Alleinstellungsmerkmal von cmus unter den Terminal-Audioplayern ist die Unterstützung von [:CDs_rippen/#Exaktes-CD-Abbild-rippen:Cuesheets]. = Installation = Folgendes Paket muss installiert [1] werden: {{{#!vorlage Paketinstallation cmus, universe }}} Die benötigten [:Codecs:] befinden sich in den Abhängigkeiten des Pakets und werden automatisch installiert. = Bedienung = [[Bild(./cmusscreenshot.png, 300, align=right)]] Das installierte Programm wird im Terminal [2] mit dem Befehl '''cmus''' gestartet [3]. (Im [:Homeverzeichnis:] wird beim ersten Start der versteckte Ordner '''.cmus''' angelegt, was einige Zeit in Anspruch nehmen kann.) {{{#!vorlage Hinweis Startet man cmus in einem aufklappbaren Terminal-Emulator wie [:Yakuake:] oder [:Tilda:], kann das Programm später einfach per Knopfdruck ein- und ausgeblendet werden. }}} Nach dem Start sollten zunächst Musikdateien in die Bibliothek importiert werden. Zwingend ist dies nicht nötig, es können auch Audiodateien im integrierten Dateibrowser ausgewählt werden wodurch nochmals Rechenleistung eingespart wird. Allerdings muss dann auf zahlreiche Funktionen verzichtet werden. == Bibliothek einlesen == === Musikdateien === Man wechselt mittels [[Vorlage(Tasten, doppelpunkt)]] auf die [#Kommandozeile Befehlszeile] und fügt das Verzeichnis oder die Datei mit dem Befehl `add`, gefolgt vom entsprechenden Pfad, hinzu: {{{#!vorlage Befehl :add ~/Musik }}} Je nach Umfang der Musiksammlung kann dies etwas dauern. Nachdem die Sammlung eingelesen wurde, findet man sie sortiert nach Künstler in der linken Bildschirmhälfte. Um die jeweiligen Alben angezeigt zu bekommen, muss man [[Vorlage(Tasten, Space)]] drücken. Auf der rechten Seite werden die im Ordner enthaltenen Musikstücke angezeigt. Mehrere Ansichtsmodi gestatten es, komfortabel zwischen verschiedenen Möglichkeiten der Wiedergabe und den Einstellungen zu wechseln. {{{#!vorlage Hinweis cmus speichert alle Angaben zu den eingelesenen Dateien in einer Cache-Datei ('''~/.cmus/cache'''). Um das Programm schlank und schnell zu halten, wird diese Datei nicht kontinuierlich aktualisiert. Dies hat zur Folge, dass cmus nicht erkennt, wenn die [:Metadaten:] (Tags) eines Stücks von einem externen Programm (wie [:EasyTAG:]) verändert wurden. Damit cmus Änderungen anzeigen kann, muss daher die Bibliothek (mit `clear -l`) gelöscht, die Cache-Datei mit [[Vorlage(Tasten, U)]] aktualisiert sowie anschließend die Bibliothek neu eingelesen werden. }}} === Radiostreams === [:Internetradio/Stationen:Radiostreams] können ebenfalls eingelesen werden. Sie müssen im Klartext als '''.m3u''' oder '''.pls''' vorliegen, um sie in cmus wiedergeben zu können. Eingebunden werden sie mittels: {{{#!vorlage Befehl :add STREAMADRESSE }}} {{{#!vorlage Hinweis Es ist möglich, mehrere Stream-Adressen untereinander in einer Textdatei zu speichern und anschließend alle Streams dieser Liste mit einem einzigen Befehl einzulesen. Bsp. für eine Datei mit dem Namen '''stream.list''': `:load /home/USER/.cmus/stream.list` }}} == Ansichten == Beim Start befindet man sich standardmäßig in der ersten von sieben Ansichten. Der Wechsel zwischen diesen erfolgt über die Tasten [[Vorlage(Tasten,1)]] bis [[Vorlage(Tasten,7)]]. Die Ansichten haben folgende Funktionen: {{{#!vorlage Tabelle <-3 tablestyle="width: 95%;" rowclass="titel"> Ansichtsmodi +++ Modus Fenster Beschreibung +++ [[Vorlage(Tasten, 1)]] Bibliothek Zweispaltige Ansicht: Links werden Künstler und Album dargestellt, rechts deren einzelne Lieder (bzw. Tracks). (Künstler werden alphabetisch, Alben nach dem Erscheinungsjahr sortiert.) +++ [[Vorlage(Tasten, 2)]] Sortierte Bibliothek Flache Listenansicht der Lieder mit der Möglichkeit für den Benutzer, die Sortierungskriterien selbst festzulegen +++ [[Vorlage(Tasten, 3)]] Wiedergabeliste Anzeige der (editier- und speicherbaren) Wiedergabeliste +++ [[Vorlage(Tasten, 4)]] Warteliste (Queue) Anzeige der unmittelbar abzuspielenden Lieder +++ [[Vorlage(Tasten, 5)]] Datei-Browser Dateisystemansicht mit der Möglichkeit zum Hinzufügen von Liedern zur Sammlung, der Wiedergabeliste oder Warteliste +++ [[Vorlage(Tasten, 6)]] Filter Anzeige benutzerdefinierter Filter +++ [[Vorlage(Tasten, 7)]] Einstellungen Einstellungsanzeige und -änderung: [[Vorlage(Tasten, D)]] löscht Einstellungen, mit [[Vorlage(Tasten, Enter)]] können sie modifizierbar gemacht sowie mit [[Vorlage(Tasten, Space)]] die konkreten Variablen geändert werden. Die standardmäßige Konfiguration ist vollständig anpassbar. }}} == Steuerung == cmus wird über die Tastatur gesteuert. Die Navigation orientiert sich an den Konventionen von [:VIM:], den Fokus kann mal also bspw. mit [[Vorlage(Tasten, k)]] nach oben und mit [[Vorlage(Tasten, j)]] nach unten bewegen. (Wobei auch die Tasten [[Vorlage(Tasten, hoch)]] und [[Vorlage(Tasten, runter)]] funktionieren.) Um in den Ansichten 2, 3 oder 4 mehrere Titel zur Wiedergabeliste bzw. zur Warteliste (Queue) hinzuzufügen, markiert man diese zunächst nacheinander mit der Taste [[Vorlage(Tasten, Space)]]; sie erscheinen dadurch farblich hervorgehoben. === Wichtige Befehle === {{{#!vorlage Tabelle <-2 tablestyle="width: 95%;" rowclass="titel">cmus-Tastenbelegung +++ Taste(n) Funktion +++ <-2 rowclass="highlight"> Wiedergabe: +++ [[Vorlage(Tasten, x)]] Wiedergabe +++ [[Vorlage(Tasten, v)]] Stop +++ [[Vorlage(Tasten, c)]] Pause +++ [[Vorlage(Tasten, b)]] Nächster Titel +++ [[Vorlage(Tasten, z)]] Vorheriger Titel +++ [[Vorlage(Tasten, plus)]] Lautstärke erhöhen +++ [[Vorlage(Tasten, minus)]] Lautstärke verringern +++ [[Vorlage(Tasten, rechts)]] 5 Sekunden vorspringen +++ [[Vorlage(Tasten, links)]] 5 Sekunden zurückgehen +++ [[Vorlage(Tasten, I)]] Fokus auf laufenden Titel (in Ansicht 1 und 2) +++ [[Vorlage(Tasten, S)]] Zufallswiedergabe (Shuffle) +++ [[Vorlage(Tasten, R)]] Wiederholung (Repeat) +++ [[Vorlage(Tasten, Ctrl+R)]] Wiederholung des aktuellen Titels (Repeat current) +++ [[Vorlage(Tasten, t)]] Anzeige der verbleibenden Liedlaufzeit +++ <-2 rowclass="highlight"> Sonstiges: +++ [[Vorlage(Tasten, 1)]] bis [[Vorlage(Tasten, 7)]] Wechsel zwischen den verschiedenen Ansichtsmodi (Wiedergabe, Playlist, Warteliste, …) +++ [[Vorlage(Tasten, Space)]] Alben ein-/ausblenden (Ansicht 1) bzw. Titel auswählen +++ [[Vorlage(Tasten, Tab)]] Wechsel zwischen den Fensterhälften +++ [[Vorlage(Tasten, slash)]] Suche nach Künstler, Album oder Titel. Fortsetzung der Suche vorwärts mit [[Vorlage(Tasten, n)]], rückwärts mit [[Vorlage(Tasten, shift+N)]] +++ [[Vorlage(Tasten, slash+slash)]] Suche nur nach Künstler oder Album (Ansicht 1) oder Titel (Ansichten 2–4). Fortsetzung der Suche vorwärts mit [[Vorlage(Tasten, n)]], rückwärts mit [[Vorlage(Tasten, shift+N)]] +++ [[Vorlage(Tasten, doppelpunkt)]] Wechsel in die Befehlszeile +++ [[Vorlage(Tasten, Shift+D)]] Ausgewählten Titel löschen +++ [[Vorlage(Tasten, Y)]] Ausgewählten Titel in die Wiedergabeliste kopieren +++ [[Vorlage(Tasten, E)]] Ausgewählten Titel in die Warteliste kopieren +++ [[Vorlage(Tasten, shift+E)]] Ausgewählten Titel in die Warteliste kopieren und dort voranstellen +++ [[Vorlage(Tasten, P)]] Ausgewählten Titel in Ansicht 3 oder 4 eine Position nach unten verschieben +++ [[Vorlage(Tasten, shift+P)]] Ausgewählten Titel in Ansicht 3 oder 4 eine Position nach oben verschieben +++ [[Vorlage(Tasten, a)]] In der Browser-Ansicht (5) eine Datei oder ein Verzeichnis in die Bibliothek (1 und 2) kopieren +++ [[Vorlage(Tasten, q)]], [[Vorlage(Tasten, y)]] Programm beenden }}} Weitere Befehle sind den [:man:Manpages] zu entnehmen. Die Befehle können beliebig den eigenen Wünschen angepasst werden. {{{#!vorlage Hinweis Befinden sich Audio-Dateien sowohl in der Wiedergsabe- als auch in der Warteliste (Queue), werden grundsätzlich zunächst die Dateien aus der Warteliste abgespielt. Dies gilt auch, wenn man bei laufender Wiedergabe eine Datei in die Warteliste einfügt. }}} === Kommandozeile === cmus wird zudem durch Kommandos gesteuert, die im Stil von [:VIM:] immer mit einem Doppelpunkt [[Vorlage(Tasten, doppelpunkt)]] beginnen. Beispiele dafür sind: {{{#!vorlage Tabelle <-2 tablestyle="width: 95%;" rowclass="titel"> Kommandos +++ Befehl Beschreibung +++ `:add ~/Musik` Ordner '''~/Musik''' der Bibliothek hinzufügen +++ `:save -p /home/USER/liste.pls` Aktuelle Playlist in das angegebene Verzeichnis unter dem Namen '''liste.pls''' speichern +++ `:load playlist.pls` Eine Playlist laden +++ `:clear` Inhalt der aktuellen Ansicht löschen +++ `:clear -l` Bibliothek löschen +++ `:add http://live.urn1350.net:8080/urn_high.ogg` Stream ``http://live.urn1350.net:8080/urn_high.ogg`` hinzufügen +++ `:set format_current=` Titelanzeige verändern +++ `:set output_plugin=` Ausgabeplugin festlegen +++ `:colorscheme` Farbschema anpassen }}} {{{#!vorlage Hinweis Jeder Befehl kann mit seinen Anfangsbuchstaben abgekürzt werden, wenn die Abkürzung eindeutig ist, also kein anderer Befehl mit den gleichen Buchstaben startet. Statt `:add STREAMADRESSE` kann also bspw. kurz `:a STREAMADRESSE` geschrieben werden. }}} Zusätzliche Informationen findet man in den [:man:Manpages]. == Filter == cmus erlaubt es, die Bibliothek (Ansichten 1 und 2) nach bestimmten Kriterien zu filtern. Hierbei lassen sich temporäre Filterungen anlegen, als auch dauerhafte, die bei Bedarf de-aktiviert werden können. === Syntax === Filter können auf die Variablen `filename`, `artist`, `album`, `title`, `genre`, discnumber, tracknumber, `date` [Jahr] und `duration` [in Sekunden] angewendet werden. Sie können mit `&` (und) sowie `|` (oder) kombiniert werden; ein `!` schließt den folgenden Ausdruck aus. Vergleichsoperatoren sind `<`, `<=`, `=,` `>=`, `>` und `!=`. === Temporäre Filter === Temporäre Filter für die aktuelle Sitzung werden mit dem Befehl `:filter` eingerichtet. Der Befehl {{{#!vorlage Befehl :filter genre="Classical" }}} zeigt bspw. nur die Lieder des Genres „Classical“ an. {{{#!vorlage Befehl :filter genre="Alternative"&duration<180 }}} zeigt alle Lieder des Genres „Alternative“ an, die kürzer als 3 Minuten (180 Sekunden) sind. Der Befehl {{{#!vorlage Befehl :filter title="A*"&genre!="Pop" }}} zeigt alle Lieder an, die mit dem Buchstaben „A“ beginnen und nicht zum Genre „Pop“ gehören. Temporäre Filter werden wieder gelöscht, indem einfach `:filter` (ohne Nachfolgendes) eingegeben wird. === Dauerhafte Filter === Mit `fset` wird in Ansicht 6 ein dauerhafter Filter eingetragen; angewandt werden sie mit dem Befehl `factivate`. Beispiel: {{{#!vorlage Befehl :fset flac=filename="*.flac" }}} erzeugt einen Filter mit dem Namen `flac`, der bewirkt, dass nur FLAC-Dateien anzeigt werden. Der Befehl: {{{#!vorlage Befehl :factivate flac }}} wendet diesen Befehl an. Mit dem Befehl: {{{#!vorlage Befehl :factivate !flac }}} werden nur Dateien angezeigt, die ''nicht'' FLAC-Dateien sind. Dauerhafte Filter können auch aktiviert werden, indem in Ansicht 6 bei Fokus auf dem entsprechenden Filter [[Vorlage(Tasten, space)]] und anschließend [[Vorlage(Tasten, enter)]] gedrückt wird. {{{#!vorlage Hinweis factivate-Befehle können mit einer Tastenkombination verbunden werden, so dass sie durch einen einfachen Tastendruck angewandt werden können. }}} Mit dem Befehl: {{{#!vorlage Befehl mark FILTERAUSDRUCK }}} werden Lieder, die dem genannten Filter-Ausdruck entsprechen, markiert. Dies ist bspw. hilfreich, wenn die ausgewählten Lieder anschließend in die Playlist verschoben werden sollen. Dauerhafte Filter können in der Filteransicht (6) deaktiviert werden. Dazu muss in dieser Ansicht der Fokus auf den aktivierten Filter gesetzt werden. Nun kann der Filter durch zweimaliges Drücken der [[Vorlage(Tasten, space)]]-Taste und anschließendes Betätigen der [[Vorlage(Tasten, enter)]]-Taste deaktiviert werden. = Konfiguration = == Konfigurationsdateien == cmus sucht sich seine Konfigurationseinstellungen in drei Dateien: * '''~/.cmus/autosave''': Datei, die cmus selbst anlegt und nach dem Programmstart zuerst ausliest. In ihr werden nach Programmende die aktuellen Einstellungen gespeichert; diese Datei sollte vom Nutzer nicht editiert werden, da sie vom Programm verändert werden kann. * '''/usr/share/cmus/rc''': Datei mit Standardeinstellungen. Sie wird geladen, wenn die Datei '''autosave''' nicht existiert. * '''~/.cmus/rc''': Statische Konfigurationsdatei, deren Einstellungen prioritär verwendet werden. Diese Datei (die ggf. manuell angelegt werden muss) sollte bearbeitet werden, wenn benutzerdefinierte Einstellungen dauerhaft vorgenommen werden sollen. (Einen ersten Anhaltspunkt dafür, wie derartige Einstellungen auszusehen haben, bietet die Datei '''autosave'''.) == Soundystem == cmus unterstützt `pulse`, `alsa`, `oss` und `ao`. Gesetzt werden kann sie (hier für `oss`) mit: {{{#!vorlage Befehl :set output_plugin=oss }}} Standardmäßig wird `pulse` ([:PulseAudio:]) verwendet. == Optik == Die Optik des Players ist anpassbar. Mehr dazu findet sich in einem [:cmus/Optik:separaten Artikel]. == Skripte== cmus kann um Skripte ergänzt werden, die u.a. die Anbindung an Last.fm oder die Übergabe des aktuellen Titels an Twitter ermöglichen. Nähere Informationen dazu finden sich im [github:cmus/cmus/wiki:Wiki] {en} von cmus. = cmus-remote = Der Programmteil `cmus-remote` gestattet es, den Player in einem separaten Terminal-Fenster durch Befehle zu steuern. Dies gestattet auch die Einbindung in Skripte. {{{#!vorlage Hinweis `cmus-remote` erlaubt es in Kombination mit [:xbindkeys:], cmus über die Multimediatasten der Tastatur zu bedienen. Mit dem Eintrag `bind on XF86AudioNext exec cmus-remote -n` in der Datei '''.xbindkeysrc''' sendet bspw. die Multimediataste „nächstes Lied“ den entsprechendem Befehl an cmus.) }}} == Befehlsoptionen == {{{#!vorlage Tabelle <-2 tablestyle="width: 95%;" rowclass="titel"> cmus-remote +++ Option Beschreibung +++ `-p` Wiedergabe +++ `-u` Pause +++ `-s` Unterbrechung der Wiedergabe +++ `-n` Nächster Titel +++ `-r` Vorheriger Titel +++ `-R` Wiederholung (Repeat) +++ `-s` Zufallswiedergabe (Shuffle) +++ `-v` Lautstärkeänderung (muss von einem Wert gefolgt werden, also z.B.: `-v +10`) +++ `-k` Titelsuche +++ `-l` Bibliothek +++ `-p` Wiedergabeliste +++ `-q` Warteliste +++ `-c` Wiedergabeliste löschen +++ `-l` Bibliothek löschen +++ `-q` Warteliste löschen }}} == Beispiele == Eine Wiedergabeliste, Dateien, Ordner oder Internetlinks zur Bibliothek hinzufügen: {{{#!vorlage Befehl cmus-remote -l music.m3u \ http://live.urn1350.net:8080/urn_high.ogg }}} Löschen der Wiedergabeliste und Hinzufügen neuer Inhalte: {{{#!vorlage Befehl cmus-remote -c music.m3u }}} == Alarm-Hack == Dieser kleine Befehl bewirkt, dass die Musik nach einer definierten Zeit ausgeht (wenn man z.B. zur Arbeit muss). {{{#!vorlage Befehl echo "cmus-remote -u" | at now+14minutes }}} = Problembehebung = Sollte cmus nicht starten, wird wahrscheinlich das falsche [:Soundsystem:] angesprochen. Da man die Optionen in dem Fall nicht erreichen kann, muss die Konfigurationsdatei '''rc''' unter ''.config/cmus'' bearbeitet werden (notfalls vorher erstellen). Folgende Werte sollten funktionieren: {{{#!code set output_plugin=alsa set dsp.alsa.device=default set mixer.alsa.device=default set mixer.alsa.channel=Master }}} = Links = * [github:cmus/cmus/wiki:cmus wiki] {en} (mit Erweiterungen) * [https://michael.stapelberg.ch/posts/2008-02-04-asterisk_musik/ cmus und die Asterisk-Telefonanlage] {de} auf michael.stapelberg.de * [wikipedia_en:Cmus:cmus]-Artikel in der englischsprachigen Wikipedia # tag: Shell, Multimedia