MPD – konfigurace obecně

MPD – Music Player deamon … výborná věc pro pouštění hudby. Jedná se o server-client aplikaci, pomocí které můžete vzdáleně ovládat (spouštět/zastavovat) hudbu. Ta může být „posílána“ do připojených reproboxů (sluchátek) nebo do dalšího PC. Tři asi nejpoužívanější konfigurace jsou znázorněny na následujících obrázcích.

MPD samozřejmě může přehrávat i internetová rádia. Potřebujete jen vědět adresu streamu a pak jej v MPD klientovi spustit. V GMPC se tak děje přes Nástroje => Přidat URL. Rádia si pak můžete přidat do playlistu.
Adresy streamu některých českých rádií najdete zde, v seznamu si pak najdete rádio a ve sloupci „Listen Live“ si zvolíte datový tok a typ streamu – následně pak stačí zkopírovat adresu odkazu a vložit ji do MPD.

MPD je serverová aplikace, pro ovládání potřebujete tzv. klienta – tj. aplikaci na počítači, ze kterého chcete k mpd přistupovat, resp. ovládat ji. Klientů mpd je vícero, pro Linux používám GMPC, na telefonu s Androidem pak MPD klienta M.A.L.P.

Obecně o konfiguraci MPD – není to nic složitého, záludnost spočívá ve faktu, že na Ubuntu se Pulseaudio spouští v userspace uživatele a MPD při instalaci vytvoří uživatele „mpd“.

Bývaly doby, kdy k HW (fyzické) zvukové kartě mohla přistupovat pouze jedna audio aplikace, která ji „obsadila“ a tím zamezila přístupu jiným aplikacím, přičemž neexistoval zvukový server Pulseaudio. Nemohli jste tedy spouštět společně např. Totem a VLC. Požadavek na společné puštění dvou a více audio programů se zdá být nesmyslný, ale jen do doby, než např. jako DJ budete chtít pustit další skladbu před ukončením právě hrané. Mj. z tohoto důvodu je zde Pulseaudio, což je zvukový server, který jako jediná aplikace přistupuje k fyzické zvukové kartě, přičemž ostatní zájemci o přehrání zvuku pak přistupují jen k zvukovému serveru Pulseaudio. Stále totiž platí, že k fyzické zvukové kartě může přistupovat pouze jedna aplikace.
Z výše uvedeného tedy vyplývá, že lze spustit současně dvě audio aplikace přes Pulseaudio a budou se přehrávat současně výstupy z každé spuštěné aplikace, na druhou stranu uslyšíte jen jeden zvuk pokud jedna aplikace bude používat ALSA a druhá Pulseaudio. Hrát bude ta, která byla spuštěna jako první – protože jako první „obsadí“ zvukovou kartu.
Ovšem stejná situace nastane, pokud se spustí dvě instance Pulseaudio – první spuštěná „obsadí“ zvukovou kartu a instance puštěná druhá v pořadí je tak bez přístupu k fyzické zvukové kartě. A jsme u jádra pudla – MPD při instalaci vytvoří uživatele „mpd“ a spuštěním MPD se vytvoří instance Pulseaudio v userspace uživatele „mpd“. A dál to závisí na aktuální situaci – pokud právě přihlášený uživatel (např. Pepa) nemá spuštěnou žádnou audio aplikaci, pak MPD bude hrát. Pokud ovšem náš Pepa má spuštěnou nějakou audio aplikaci (a stačí www browser se stránkou vyžadující přístup k Pulseaudio), pak MPD hrát samozřejmě nebude, protože instance Pulseaudia uživatele“mpd“ nemá volný přístup k zvukové kartě

Principiální řešení jsou tři :

  1. nakonfigurovat Pulseaudio jako systémového démona tak, aby se spouštěla jen jedna instance společná pro celý systém a nikoliv instance pusleaudio v userspace uživatele
  2. nakonfigurovat MPD tak, aby se nespouštěl pod uživatelem „mpd“, ale pod přihlášeným uživatelem – v našem případě uživatelem Pepa
  3. Výstup z MPD nasměrovat přes TCP do instance Pulseaudio přihlášeného uživatele.

AD 1. – tady může nastat potíž s ostatními aplikacemi, protože všichni předpokládají, že přihlášený uživatel má spuštěné Pulseaudio ve svém userspace. Navíc mohou nastat komplikace při aktualizacích systému, neboť je to zásah do základu konfigurace.
AD 2. – opět celkem komplikované i když postup je dobře popsán na stránkách projektu MPD. Navíc vzniká problém, pokud se na PC ~ notebooku přihlašuje víc uživatelů (manžel-manželka, přítel-přítelkyně, potomek…).
AD 3. – nejjednodušší varianta, která zachovává všechna systémová nastavení a zvuk směřuje přes TCP modul do instance Pulseaudio přihlášeného uživatele – tato instance ale musí mít povolen přístup ze sítě. V případě vzdáleného počítače směřujeme na IP adresu v síti, v případě lokálního řešení (varianta č. 1) na 127.0.0.1 . Tohle se pak velice komfortně nastavuje přes paprefs (= PulseAudioPREFerenceS)

Samotná konfigurace MPD je jednoduchá – vše se nastavuje v souboru mpd.conf, který po instalaci najdete v adresáři /etc. V konfiguračním souboru jsou jednotlivé direktivy dobře popsány, zde uvedu nastavení společných direktiv pro uvedené tři varianty, v popisu konkrétní varianty pak příslušná další nastavení.

# /etc/mpd.conf
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/tag_cache"
log_file "/var/log/mpd/mpd.log"
pid_file "/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
group "audio"
bind_to_address "0.0.0.0"
# bind_to_address "192.168.0.100"
# bind_to_address "192.168.0.101"
port "6600"
log_level "verbose"
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"
zeroconf_enabled "yes"
zeroconf_name "Music Player

K některým direktivám :
music_directory a playlist_directory => jedná se o určení, kde má MPD hledat audio soubory a playlisty. Tady malá poznámka : MPD má XDG adresář v /var/lib/mpd , proto tam mj. hledá i audio a playlisty. Nejjednodušší řešení je buď audio soubory nakopírovat zde nebo použít symlinky na skutečné umístění. Používám symbolické odkazy, proto mám povoleny i direktivy follow_outside_symlinks a follow_inside_symlinks.
user => ve výchozím nastavení je nastaven „mpd“ a výše jsem uvádím proč není nutno nastavení měnit.
group => mám nastaveno na „audio“
bind_to_address => direktiva určuje ze které IP adresy je povolen přístup mpd klienta. Pokud je vyplněno 0.0.0.0 , pak je povolen přístup ze všech adres, což je vhodné při problémech … a následně se podívat do logu, ze kterých adresy je vlastně přistupováno. Pro povolení přístupu z vícero IP adres se pak jednoduše uvedou další direktivy bind_to_address s příslušnými IP adresami.

MPD – konfigurace varianty č. 1
MPD – konfigurace varianty č. 2
MPD – konfigurace varianty č. 3

Napsat komentář