Tento příspěvek je 1. částí série MPD

Zprovozňujeme MPD

Na rozdíl od mého minulého hudbou naladěného rychlého testu řádkových přehrávačů se dnes podíváme na velice netradiční, ale přesto velice zajímavý hudební přehrávač. No, on je vlastně hodně divný, jelikož nemá žádné rozhraní na ovládání… ale co byste taky čekali, když je jeho název Music Player Daemon (dále MPD). Ano správně, je to pouze démon, neboli služba, a ovládat se tedy musí jinou aplikací. Samozřejmě princip klient-server není až tak neobvyklý v hudebním světě, ale striktní oddělení serveru od klienta je, myslím, zcela výjimečné.

Popis MPD *

Samotný MPD běží na nějakém stroji (obvykle na našem PC) a k němu se připojuje TCP protokolem klient, který teprve se serverem komunikuje a předává mu povely. Zpět klient dostává odpovědi na požadované akce a může případně i hudbu v podobě streamu pokud je to požadováno, jinak se ale hudba přehrává na stroji samotném.

Pochopitelně nic nebrání tomu aby klient byl na stejném stroji jako běží server, a také to tak bude obvykle  provozováno, ale není to zcela nutné a je možné klienta a server provozovat na samostatných strojích. Takový přístup přináší mnoho výhod. Nejenom, že je možné dálkově ovládat třeba hudební centrum, sdílet hudbu pro více klientů, nebo přenést zátěž s managementem databáze, playlistů a dekódováním hudby na jiný stroj, ale co třeba si spustit muziku na svém multimediálním PC a ovládat ho ze svého Androida? I to je samozřejmě možné, jak si ukážeme později.

I na jednom stroji tento způsob odděleného klienta přináší bonus, například v podobě velkého spektra klientů a každý si tak může vybrat takového, co mu padne do ruky nebo do oka. Přičemž, vzhledem k tomu, že backend je vždy stejný, ovládání je také vždy velice podobné.

A nejenom to, drobné radosti které nám tento přehrávač přináší také nejsou k zahození. Pokud bych měl nějaké jmenovat, tak třeba používání více klientů najednou nebo přepínání mezi nimi bez přerušení hudby, kontinuálně pokračující hudba při restartech desktopu, nebo jeho ukončení. Také pokračování přehrávání ihned po restartu systému v místě, kde přehrávání skončilo, je něco co mě hodně překvapilo a potěšilo. Není tak nutné po spuštění počítače čekat na naběhnutí desktopu a pak se teprve zabývat programy s hudbou, ale již při přihlašování do desktopu je možné si již vychutnávat libé tóny oblíbených songů. To samozřejmě jen v případě, že přehrávání nebylo standardně stopnuto, ale bylo přerušeno restartem.

 

Oficiální vlastnosti MPD *

  • lehká instalace
  • lehký import nových skladeb
  • lehká konfigurace klientů s podporou Avahi/Zeroconf
  • přehrávání bez mezer (skvělé pro živáky a opery)
  • podpora prolínání skladeb
  • ukládání, načítání a správa playlistů
  • nízké požadavky na hardware
  • testováno na mnoha odlišných operačních systémech

 

Podpora formátů aneb co to vlastně umí *

  • Dekodéry: AudioFile, libfaad (aac and mp4), ffmpeg, FLAC, fluidsynth, libmad and libmpg123 (mp3), Musepack, OggFlac, OggTremor, OggVorbis, WavPack, libsidplay, libsndfile, wildmidi
  • Výstupy: ALSA, FIFO, JACK, OSS, OSX, libao, PulseAudio, Media MVP, Shoutcast/MP3, Shoutcast/Ogg Vorbis
  • Metadata: APEv2, id3v1, id3v2, MP4, Vorbis
  • Mixéry: ALSA, OSS, Software Mixing
  • Protokoly: TCP, IPv6, and Unix Domain Sockets

 

Instalace MPD *

Instalovat budu klienta i server na jednom stroji a později si ukážeme nějaký dálkový přístup. Instalace se v Sabayonu odehrává ve stejném duchu jako u jiných programů, jen je dobré si k démonovi nainstalovat alespoň řádkového klienta. Nutné to pochopitelně není, jak vyplývá z principu, ale chleba to nežere a i pokud ho nevyužijete pro samotné ovládání a budete používat nějaký z grafických klientů, dá se řádkový klient třeba použít k namapování akcí na klávesy multimediální klávesnice.

$sudo equo install -a mpd mpc

Po instalaci je dobré (i když nemusí být zcela nutné) démona před spuštěním nastavit. Konfigurační soubor je standardně velice přehledný a tak se příjemně nastavuje. Obvykle bude potřebné pouze nastavit cestu k hudbě, ale ani to není nutné, pokud se přizpůsobíte cestě v konfiguračním souboru. Jestliže se tak chcete přepisování konfigu vyhnout, stačí vytvořit symlink

$sudo ln -s CESTA_K_ADRESARI_S_HUDBOU /var/lib/mpd/music

V mém případě, kdy mám hudbu připojenou do /media/music bych použil příkaz

$sudo ln -s /media/music /var/lib/mpd/music

Osobně ale preferuji změnu konfiguráku, protože zde je možné najít více radostných voleb k nastavení. Níže je obsah mého /etc/mpd.conf. Vše co je v seznamu vidět je ale v defaultu již nastaveno, kromě první položky music_directory, kterou si upravíte podle svého aktuálního umístění a dále jsem povolil log_level a přenastavil z hodnoty “default” na “verbose”. To se ukázalo při odlaďování na počátku jako velice výhodné a později jsem to přepnul zpět na default. Při instalaci je totiž automaticky vytvořen uživatel mpd, a tak je mu třeba zpřístupnit své hudební úložiště. Otevřete si tedy konfigurační soubor ve svém oblíbeném editoru a upravte požadované řádky. Já použiji vim.

$sudo vim /etc/mpd.conf

music_directory             "/media/music"
playlist_directory          "/var/lib/mpd/playlists"
db_file                     "/var/lib/mpd/database"
log_file                    "/var/lib/mpd/log"
state_file                  "/var/lib/mpd/state"

user                        "mpd"
bind_to_address             "localhost"
bind_to_address             "/var/lib/mpd/socket"
log_level                   "verbose"

input {
        plugin "curl"
}
filesystem_charset          "UTF-8"

 

Zvukový systém začne fungovat obvykle automaticky a tak není nutné nějaký ze zakomentovaných povolovat, ale pokud budete mít se zvukovým výstupem problém, nebo si třeba jen chcete udržet kontrolu, přejděte do sekce Audio Output a povolte svůj zvukový systém odstraněním příslušných komentářů. Jelikož mám hudební archiv připojený z NAS přes Sambu, nastavil jsem si ještě některé volby navíc pro pohodu poslouchání.

 audio_buffer_size          "2048"
 buffer_before_play         "5%"

 

Start MPD *

Teď už démona jen spustit. Samozřejmě jde MPD spouštět jen jako aplikace a také to pro začátek můžete udělat, bude tak dobře vidět jak MPD načítá konfigurační soubor. My si ale MPD rovnou spustíme jako démona, abychom viděli jak to má “správně” vypadat.

$sudo /etc/init.d/mpd start
* Starting Music Player Daemon …                                     [ ok ]

Pro automatické spouštění démona po startu systému je potřeba přidat MPD do default runlevelu

$sudo rc-update add mpd default
* service mpd added to runlevel default

V případě, že se vám MPD nebude líbit a budete ho chtít zase z automatického spouštění odstranit, použijte stejný příkaz jako na přidání, jen slovo add nahraďte slovem del.

Po prvním spuštění si MPD vytvoří prázdnou databázi a nyní již není nutné jí manuálně vytvářet jak to bylo v minulých verzích MPD. Pokud je nastavení v konfiguraci správné, rovnou se i databáze naplní.

$ls /var/lib/mpd
database  log  music/  playlists/  socket=  state

Jestliže budete chtít sledovat log pro případné odladění při prvním spouštění, můžete si spustit v nějakém terminálu tento příkaz.

$tail -f /var/lib/mpd/log

To ukáže konec logu a výpis se bude online aktualizovat, takže můžete vidět co se děje v serveru. Pokud jste jako já do konfiguračního souboru přidali verbose logování, budou výpisy detailnější. Až budete chtít se sledováním skončit, je možné výpis přerušit standardním CTRL+C.

Logování pak můžete v konfiguračním souboru nastavit zpět na default

$sudo vim /etc/mpd.conf

log_level                   "default"

 

Tímto je vše co se týká backendu, neboli serveru, funkční a hotové a v příštím dílu se mrkneme na základního klienta MPC. Měl jsem to původně v jednom článku, ale začalo to být nějaké dlouhé, tak jsem to raději rozdělil, aby bylo čtení přehlednější.

 

Luděk Melichar