Verbindet man seinen Linux-PC mit hochwertigen Aktivboxen oder mit der Stereo- oder Heimkino-Anlage, so kann der Linux-PC als hochwertigen Abspieler für Internetradio-Streams und für lokal gespeicherte Musik und Hörspiele dienen.
Die Steuerung kann komfortabel über gut ausgestattete Mediaplayer wie Amarok, Rhytmbox, Cantata, MythTV oder VLC erfolgen.
Hier sollen zwei weniger verbreitete Steuerungsmöglichkeiten beschrieben werden – per Kommandozeile/Skript oder per Smartphone. Gemeinsame Basis ist der MPD (Musik Player Daemon).
Die Einrichtung von MPD ist meist schnell erledigt. Auf openSUSE kann man MPD und den MPD-Client wie folgt installieren, wenn das Multimedia-Repository Packman aktiviert ist:
# zypper install mpd mdclient
Unter Ubuntu geht das mit
# apt-get install mpd mpc
Nun sollte man im MPD-Konfigurationsverzeichnis noch das Verzeichnis mit den Musik- oder Hörspieltiteln eintragen. Systemweit geht das in der Datei /etc/mpd.conf, benutzerspezifisch in ~bv/.mpdconf.
music_directory "/daten/musik"
Damit MPD vom lokalen Netz erreichbar ist, sollten Bind-Adresse und Port auskommentiert oder auf Standard-Einstellungen stehen. Außerdem sollte die Firewall den TCP-Port 6600 geöffnet haben.
# For network #bind_to_address "any" # And for Unix Socket #bind_to_address "~/.mpd/socket" # Port #port "6600"
In lokalen Netzwerken mit vielen Benutzern kann es sinnvoll sein, MPD mit einem Passwort zu sichern und die Firewall restriktiver einzustellen, sodass z.B. nur bestimmte Smartphones mit festgelegten MAC-Adressen MPD steuern können.
Gestartet wird MPD als Benutzer direkt mit
# mpd
oder über einen Autostart-Eintrag des jeweiligen Desktops.
Für einen ersten Test werden alle gefundenen Musikstücke aufgelistet, ein Musikstück davon wird in die Playlist gestellt und die Wiedergabe wird gestartet:
# mpc listall [...]Lana Del Rey/Video Games/01 - Video Games.mp3 [...] # mpc add "Lana Del Rey/Video Games/01 - Video Games.mp3" # mpc playLana Del Rey - Video Games [playing] #1/1 0:00/4:01 (0%) volume: n/a repeat: off random: off single: off consume: off
Der Kommandozeilen-MPD-Client „mpc“ bringt eine große Zahl an Befehlen mit, die über „mpc help“ oder ‚man mpc'“ angezeigt werden können:
# mpc help [...]Commands: mpc Display status mpc add <uri> Add a song to the current playlist mpc crop Remove all but the currently playing song mpc current Show the currently playing song mpc del <position> Remove a song from the current playlist mpc play [<position>] Start playing at <position> mpc next Play the next song in the current playlist mpc prev Play the previous song in the current playlist mpc pause Pauses the currently playing song mpc toggle Toggles Play/Pause, plays if stopped mpc cdprev Compact disk player-like previous command mpc stop Stop the currently playing playlists mpc seek [+-][HH:MM:SS]|<0-100>% Seeks to the specified position mpc clear Clear the current playlist mpc outputs Show the current outputs mpc enable [only] <output # or name> [...] Enable output(s) mpc disable [only] <output # or name> [...] Disable output(s) mpc toggleoutput <output # or name> [...] Toggle output(s) mpc shuffle Shuffle the current playlist mpc move <from> <to> Move song in playlist mpc playlist [<playlist>] Print <playlist> mpc listall [<file>] List all songs in the music dir mpc ls [<directory>] List the contents of <directory> mpc lsplaylists List currently available playlists mpc load <file> Load <file> as a playlist mpc insert <uri> Insert a song to the current playlist after the current track mpc save <file> Save a playlist as <file> mpc rm <file> Remove a playlist mpc volume [+-]<num> Set volume to <num> or adjusts by [+-]<num> mpc repeat <on|off> Toggle repeat mode, or specify state mpc random <on|off> Toggle random mode, or specify state mpc single <on|off> Toggle single mode, or specify state mpc consume <on|off> Toggle consume mode, or specify state mpc search <type> <query> Search for a song mpc searchadd <type> <query> Search songs and add them to the current playlist mpc find <type> <query> Find a song (exact match) mpc findadd <type> <query> Find songs and add them to the current playlist mpc searchplay <pattern> Find and play a song in the current playlist mpc list <type> [<type> <query>] Show all tags of <type> mpc crossfade [<seconds>] Set and display crossfade settings mpc clearerror Clear the current error mpc mixrampdb [<dB>] Set and display mixrampdb settings mpc mixrampdelay [<seconds>] Set and display mixrampdelay settings mpc update [<path>] Scan music directory for updates mpc sticker <uri> <get|set|list|delete|find> [args..] Sticker management mpc stats Display statistics about MPD mpc version Report version of MPD mpc idle [events] Idle until an event occurs mpc idleloop [events] Continuously idle until an event occurs mpc replaygain [off|track|album] Set or display the replay gain mode mpc channels List the channels that other clients have subscribed to. mpc sendmessage <channel> <message> Send a message to the specified channel. mpc waitmessage <channel> Wait for at least one message on the specified channel. mpc subscribe <channel> Subscribe to the specified channel and continuously receive messages.
Interessant ist, dass man eine große Musiksammlung schnell und flexibel mit Linux-Mitteln durchsuchen kann. Alle Titel von Lana Del Rey findet man z.B. über ein normales „grep“ oder mit dem „search“-Kommando:
# mpc listall | grep -i lana Lana Del Rey/Video Games/01 - Video Games.mp3 Lana Del Rey - Born to Die/01 - Born to Die.mp3 Lana Del Rey - Born to Die/02 - Off to the Races.mp3 Lana Del Rey - Born to Die/03 - Blue Jeans.mp3 Lana Del Rey - Born to Die/04 - Video Games.mp3 Lana Del Rey - Born to Die/05 - Diet Mountain Dew.mp3 Lana Del Rey - Born to Die/06 - National Anthem.mp3 Lana Del Rey - Born to Die/07 - Dark Paradise.mp3 Lana Del Rey - Born to Die/08 - Radio.mp3 Lana Del Rey - Born to Die/09 - Carmen.mp3 Lana Del Rey - Born to Die/10 - Million Dollar Man.mp3 Lana Del Rey - Born to Die/11 - Summertime Sadness.mp3 Lana Del Rey - Born to Die/12 - This Is What Makes Us Girls.mp3 # mpc search Artist Lana
Mit MPC-Kommandos kann man eine Playlist zusammenstellen (mpc add), anzeigen (mpc playlist) und steuern (mpc next, mpc play u.a.):
# mpc add "Lana Del Rey/Video Games/01 - Video Games.mp3" # mpc add "Lana Del Rey - Born to Die/08 - Radio.mp3" # mpc add "ABBA - Gold - Greatest Hits/04 - Mamma Mia.mp3" # mpc playlist Lana Del Rey - Video Games Lana Del Rey - Radio ABBA - Mamma Mia # mpc next volume: n/a repeat: off random: off single: off consume: off # mpc Lana Del Rey - Video Games [playing] #1/3 2:10/4:01 (53%) volume: 92% repeat: off random: off single: off consume: off
Für die gängigen Smartphone-Betriebssysteme gibt es komfortable Apps zur Steuerung des MPD auf dem Linux-PC. Manche können z.B. Album-Cover anzeigen. Viel mehr als die IP-Adresse des Linux-PCs brauchst man in den Apps nicht zu konfigurieren. Empfehlenswert ist z.B. MPDroid für Android.
Internet-Radio kann MPD übrigens auch abspielen. Das Erstellen von Internetradio-Einträgen für MPD ist auf der Kommandozeile allerdings etwas umständlich, weil es z.B. keine direkte Unterstützung für gängige Radio-Playlist-Formate wie M3U gibt und weil MPD keine eigene Datenbank mit Internetradio-Stationen enthält. Prinzipiell geht es aber. Hier wird z.B. die Radiostation 1Live erstellt und abgespielt:
# mpc add $(wget -q -O- http://www.wdr.de/wdrlive/media/einslive.m3u | grep http://) # mpc play http://1live.akacast.akamaistream.net/7/706/119434/v1/gnl.akacast.akamaistream.net/1live [playing] #1/1 0:00/0:00 (0%) volume: n/a repeat: off random: off single: off consume: off
Der Musikplayer Cantata basiert ebenfalls auf MPD, hat aber eine umfangreiche Liste an Internet-Radiostationen an Bord. Aktuell kann man einen MPD-Server jedoch nicht gleichzeitig über Cantata auf dem Desktop und über Smartphone steuern, da Cantata MPD so startet, dass MPD nur lokal verfügbar ist.
Übrigens kann man manche Musikplayer auch über die Kommandozeile steuern. Beispielsweise kann man die Radio-Applikation Kradio über DBus steuern. Hier wird z.B. Kradio gestartet, dann wird die nächste Radiostation eingestellt und danach Kradio wieder beendet.
# kradio4 & # dbus-send --dest=net.sourceforge.kradio4-$(pidof kradio4) \ --print-reply \ /KRadio4/Instance1 \ net.sourceforge.kradio.nextStation # dbus-send --dest=net.sourceforge.kradio4-$(pidof kradio4) \ --print-reply \ /KRadio4/Instance1 \ net.sourceforge.kradio.powerOff