Magazine Informatica

MPD (Music Player Daemon) è un player audio con struttura client-server, prima parte.

Creato il 30 luglio 2012 da Linuxlandia

mpdMPD (music player daemon) è un player audio con struttura client-server. MPD lavora in background come demone, gestisce le playlist e il database della musica e utilizza pochissime risorse. Per interfacciarsi con il demone è necessario un client. Maggiori informazioni possono essere reperite sul sito di MPD.

Attenzione leggere anche la pagina ufficiale per l'installazione e la risoluzione dei problemi, lo sviluppatore principale ha indicato la nostra pagina wiki al suo stato attuale come piena di problemi ("full of symptom killers"), per cui la pagina ufficiale dovrebbe contenere informazioni più complete.

Installare il demone.

Il demone è disponibile nel repository "extra", è quindi possibile installarlo con pacman:

# pacman -S mpd


Configurazione.


Per maggiori informazioni sulla configurazione di MPD visitare


http://mpd.wikia.com/wiki/Configuration.


Comportamento di MPD in una configurazione tipica.


  1. MPD viene avviato al boot da /etc/rc.conf, includendolo nell'array DAEMONS. (In alternativa può essere avviato manualmente lanciando /etc/rc.d/mpd start con privilegi di root).

  2. Essendo stato lanciato come root, MPD per prima cosa legge il file /etc/mpd.conf.

  3. MPD individua l'utente di esecuzione dal file /etc/mpd.conf, e cambia la proprietà del processo da root a questo utente.

  4. Una volta cambiata la proprietà, MPD analizza i contenuti di /etc/mpd.conf si configura di conseguenza.


Si noti che MPD cambia l'utente attivo da root a quello menzionato in /etc/mpd.conf. In questo modo, l'uso di ~ nel file di configurazione punta correttamente alla directory home dell'utente, e non a quella di root. Potrebbe valer la pena di sostituire tutte le occorrenze di ~ con /home/username per evitare ogni confusione con questo particolare comportamento di MPD.


MPD_1


File di configurazione minimo.


  • Come root, verificare se il file /etc/mpd.conf esiste e, nel caso, eliminarlo. Questo è sicuro e consigliato.


MPD crea un file di configurazione di esempio, situato in /usr/share/doc/mpd/mpd.conf.example. Questo file contiene moltissime informazioni sulla configurazione di MPD, oltre ad alcuni valori del mixer di default che possono semplicemente essere commentati.



  • Come root, copiare questo file di esempio in /etc/mpd.conf.


# cp /usr/share/mpd/mpd.conf.example /etc/mpd.conf


(/usr/share/doc/mpd/mpd.conf.example è un ottimo punto di partenza per una orientata al singolo utente)


Mai mettere questo file nella home dell'utente come suggerito in altri tutorial. Questo complicherrebe le cose e molte volte è anche inutile (notare come si stia leggendo una guida per l'installazione veloce). Se è stato precedentemente creato un file .mpdconf nella propria home, cancellarlo adesso. Questo è importante per evitare conflitti di configurazione. Copiandolo in /etc, come fatto in questa guida, MPD sarà in grado di operare come demone all'avvio. Altrimenti sarebbe necessario uno script per lanciare MPD dopo il login dell'utente (ad esempio in kdm o ~/.fluxbox/startup) oppure un avviamento manuale. Per una singola collezione musicale, il metodo qui descritto è semplicemente migliore, anche se la collezione è condivisa con più utenti. Inoltre, non bisogna preoccuparsi dei privilegi di root: anche quando MPD opera come demone, non opererà mai completamente come root in quanto automaticamente scarica i suoi privilegi di root dopo l'esecuzione.


mpd_playlist


Configurare correttamente il suono.

Per far funzionare l'audio assicurarsi di aver correttamente configurato la scheda audio e il mixer. Visitare ALSA_(Italiano). Non dimenticarsi di rimuovere il muto dai canali necessari in alsamixer, alzare il volume e salvare i cambiamenti con alsactl store. Visitare ~/.mpd/error se ancora l'audio non funziona.


Assicurarsi che la propria scheda audio possa effettuare il mixing hardware (molte di esse possono, incluse quelle integrate). In caso contrario questo potrebbe causare problemi con le riproduzioni multiple. Per esempio, impedirebbe ad Mplayer di riprodurre il suono mentre il demone MPD è attivo, restituendo un messaggio di errore audio comunicante che il dispositivo è occupato.


Mixing software.

Per cambiare il volume dell'audio di MPD indipendentemente da altri programmi, decommentare o aggiungere in mpd.conf:


/etc/mpd.conf

mixer_type			"software"

 

Modifica di mpd.conf

Si mantiene la configurazione in /var e si utilizza "mpd" come utente predefinito invece di ingombrare ~/. Il pacchetto Arch è configurato in questo modo.


Modificare /etc/mpd.conf nel seguente modo.


/etc/mpd.conf

music_directory       "/home/user/music"         # La directory della collezione musicale.
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/mpd.db"
log_file "/var/log/mpd/mpd.log"
pid_file "/var/run/mpd/mpd.pid"
state_file "/var/lib/mpd/mpdstate"
user "mpd"
# bind_to_address e port causavano problemi in MPD-0.14.2
# meglio lasciare commentato
# bind_to_address "127.0.0.1"
# port "6600"

Leggere i passaggi seguenti con attenzione, i permessi devono essere impostati correttamente.



  • Come utente creare i file specificati in /etc/mpd.conf, se le directory non esistono, crearle. Ciò non è richiesto se si usa la configurazione predefinita del pacchetto Arch.

  • Se la collezione musicale è contenuta in diverse directory, è possibile creare dei link simbolici in /var/lib/mpd e impostare 'music_dir' in mpd.conf alla directory contenente i link. Ricordare di impostare i permessi in accordo sulle directory linkate.

  • La creazione del database musicale si ottiene con la funzione "update" del client, ad esempio se si utilizza ncmpcpp è sufficiente premere 'u'.



    • La funzione di creazione del database MPD da root (# mpd --create-db), è deprecata.


    • music_player_minion-407183-1285393239





Configurazione alternativa.


MPD non ha bisogno di avviarsi con i permessi di root. L'unica ragione per cui MPD ha bisogno di essere avviato da root (venendo chiamato da /etc/rc.conf) è perché i file e le cartelle contenute nella configurazione di default puntano a directory di proprietà dell'utente root (la directory /var).Un approccio meno comune, ma forse più raffinato, è far lavorare MPD con file e directory di proprietà dell'utente normale. Avviare MPD come utente normale ha diversi vantaggi:



  1. Si può facilmente avere una singola directory ~/.mpd (o una qualsiasi altra directory sotto /home/username) per tutti i file di configurazione di MPD

  2. Nessun errore causato da permessi di lettura/scrittura

  3. Chiamate ad MPD più flessibili usando ~/.xinitrc invece di includere 'mpd' nell'array DAEMONS di /etc/rc.conf.


I seguenti passaggi illustrano come avviare MPD come utente normale. Attenzione: questo metodo non funzionerà se si desidera che più utenti possano accedere ad MPD.



  • Copiare i contenuti della configurazione di default di MPD da /etc/mpd.conf.example alla propria home. Una buona posizione potrebbe essere "/home/user/.mpd/mpd.conf".

  • Seguire le istruzioni di configurazione più sopra, ignorando la prima parte riguardante la copia della configurazione in /etc/mpd.conf.

  • Creare tutti i file necessari in "/home/user/.mpd/":


"~/.mpd/playlists"
"~/.mpd/db"
"~/.mpd/mpd.log"
"~/.mpd/mpd.error"
"~/.mpd/mpd.pid"
"~/.mpd/mpdstate"


  • Avviare MPD al boot chiamandolo dal proprio ~/.xinitrc come segue:


# questo avvia MPD come utente normale
mpd /home/username/.mpd/mpd.conf


Nota: non c'è la necessita di inserire un "&" alla fine della riga precedente, in quanto MPD automaticamente si avvia come demone.


Infine, cancellare la voce 'mpd' dall'array DAEMONS in /etc/rc.conf, visto che non viene più avviato come root.


Configurazione veloce.

Il metodo più rapido per creare la struttura necessaria è eseguire il seguente comando:


$ mkdir -p ~/.mpd/playlists & touch ~/.mpd/database & cp /usr/share/doc/mpd/mpdconf.example ~/.mpd/mpd.conf

E successivamente modificare mpd.conf con i propri collegamenti. Attenzione che è necessario decommentare la voce db_file se è stato modificato mpd.conf.


Infine, avviare MPD:


$ mpd ~/.mpd/mpd.conf


Configurazione multi-demone.

Utile se si desidera avviare, ad esempio, un server icecast. Se si vuole un secondo demone MPD (ad esempio, con un output icecast per condividere la musica nella rete) che utilizzi la stessa musica e la stessa playlist di quello configurato come sopra, semplicemente copiare il file di configurazione qui sopra creato in un nuovo file (ad esempio, /home/username/.mpd/config-icecast), e modificare solo le voci log_file, error_file, pid_file, e state_file (ad esempio, mpd-icecast.log, mpd-icecast.error, e via di seguito); usare le stesse directory per la musica e le playlist assicura che questo secondo demone MPD utilizzerà la stessa collezione musicale del primo demone (quindi, creare e modificare una playlist dal primo demone influenzerà anche il secondo demone, così non sarà necessario creare la stessa playlist anche per il secondo demone). A questo punto, chiamare il secondo demone allo stesso modo del primo dal proprio ~/.xinitrc. (Solo assicurarsi di utilizzare una porta differente, in modo da non causare conflitti con il primo demone).


Installazione del client.


Installare un programma client per MPD. Alcuni client comuni sono:



  • mpc – Client da linea di comando (la sua installazione è consigliata in ogni caso)


# pacman -S mpc


  • ncmpc – Client NCurses Client (estremamente utile da console) Sito ufficiale di ncmpc


# pacman -S ncmpc


# pacman -S ncmpcpp


  • dmpc – Client MPC basato su DMenu con gestore di playlist e memorizzazione dello stato al cambio della playlist Pacchetto AUR di dmpc


Installare dmpc da AUR.


  • pms – Client NCurses altamente configurabile e di facile utilizzo Sito ufficiale di pms


Installare pmus da AUR.


# pacman -S ario


# pacman -S sonata


  • gmpc – Client GNOME Sito ufficiale di gmpc


# pacman -S gmpc


  • QMPDClient – Client scritto in Qt 4.x. Sito ufficiale di QMPDClient


# pacman -S qmpdclient

mpd_jinzora2

Funzionalità Extra.


Scrobbling su Last.fm

Per eseguire lo scrobbling delle tracce su Last.fm utilizzando MPD ci sono svariate alternative.


mpdscribble

mpdscribble è un'altro demone, ma è solo disponibile in AUR. Questa è probabilmente la migliore delle alternative, in quanto è lo scrobbler semi-ufficiale di MPD e utilizza la nuova funzione "idle" di MPD per uno scrobbling più accurato. Inoltre, non c'è bisogno dell'accesso root per configurarlo, perché non richiede nessuna modifica a /etc. Visitare il sito ufficiale per maggiori informazioni.


Per ottenere mpdscribble, è sufficente installarlo dall'AUR ed eseguire i seguenti passaggi (non come root):



  • $ mkdir ~/.mpdscribble

  • Creare il file ~/.mpdscribble/mpdscribble.conf e configurarlo come segue:


 [mpdscribble] 
host = <host di mpd>
port = <porta di mpd>
log = ~/.mpdscribble/mpdscribble.log
journal = ~/.mpdscribble/mpdscribble.cache
verbose = 2
sleep = 1
musicdir = <directory della collezione>
proxy = <il proxy> # opzionale, ad esempio http://uo.proxy:8080, di default vuoto
[last.fm]
# sezione last.fm, commentare se non si usa last.fm
url = http://post.audioscrobbler.com # opzionale
username = <username last>
password = <password last.fm> # md5sum in alternativa: echo -n PASSWORD | md5sum | cut -f 1 -d " "
[libre.fm]
# sezione libre.fm, commentare se non si usa libre.fm
url = http://turtle.libre.fm/
username = <username libre.fm>
password = <password libre.fm>


  • Aggiungere mpdscribble al proprio ~/.xinitrc:


pidof mpdscribble >& /dev/null
if [ $? -ne 0 ]; then
mpdscribble &
fi

Per chi non esegue il login direttamente da X, è possibile aggiungere mpdscribble all'array DAEMONS di /etc/rc.conf. Tuttavia in alcuni casi ciò non è sufficiente a garantire che mpdscribble venga eseguito all'avvio di sistema. Si può ovviare a questo inconveniente aggiungendo


mpdscribble &

a /etc/rc.local.


Sonata & Ario.

La via più facile, se non è importante avere una finestra aperta tutto il tempo, è usare Sonata o Ario che sono frontend grafici a MPD. Hanno un supporto integrato per lo scrobbling su Last.fm nelle loro preferenze. Una nota negativa è che Sonata non salva una cache delle tracce se per qualche ragione non è disponibile una connessione internet durante la riproduzione.


lastfmsubmitd

lastfmsubmitd è un demone disponibile nel repository "community". Dopo averlo installato, per prima cosa modificare /etc/lastfmsubmitd.conf e aggiungere sia lastfmsubmitd che lastmp all'array DAEMONS in /etc/rc.conf.


relaxx-light


Riproduzione da Last.fm con lastfmproxy

lastfmproxy è uno script python che riproduce uno stream last.fm su un altro media player. Per configurarlo, installare lastfmproxy dall'AUR e modificare /usr/share/lastfmproxy/config.py. Se si vuole riprodurre sono da MPD sullo stesso host, è sufficiente modificare le informazioni di login.


Nota: Visto che viene installato in una directory di sola lettura ma richiede permessi di lettura/scrittura per funzioni quali la memorizzazione delle stazioni precedentemente ascoltate, sarebbe saggio copiare /usr/share/lastfmproxy nella propria home.


Avviare lastfmproxy con lastfmproxy e visitare http://localhost:1881/ nel proprio browser. Per aggiungere una stazione last.fm station navigare in http://localhost:1881/ seguito da lastfm:// url. Esempio: http://localhost:1881/lastfm://globaltags/punk . Tornare in http://localhost:1881/ e scaricare il file m3u selezionando il link Start Listening. Semplicemente aggiungere questo file alle playlist.


Non riprodurre all'avvio.

Metodo 1.

Se non si desidera che MPD riproduca la playlist all'avvio del demone, ma si desidera preservare le altre informazioni di stato, aggiungere le righe seguenti al file /etc/rc.d/mpd:


   ...
stat_busy "Avvio di Music Player Daemon"

   # avviare sempre in pausa
awk '/^state_file[ \t]+"[^"]+"$/ {
match($0, "\".+\"")
sfile = substr($0, RSTART + 1, RLENGTH - 2)
} /^user[ \t]+"[^"]+"$/ {
match($0, "\".+\"")
user = substr($0, RSTART + 1, RLENGTH - 2)
} END {
if (sfile == "")
exit;
if (user != "")
sub(/^~/, "/home/" user, sfile)
system("sed -i \x27s|^\\(state:[ \\t]\\{1,\\}\\)play$|\\1pause|\x27 \x27" sfile "\x27")
}' /etc/mpd.conf

   /usr/bin/mpd /etc/mpd.conf &> /dev/null
...

Questo imposterà il lettore in "pausa", se è stato fermato durante la riproduzione. Successivamente, se si vuole che questo file sia preservato, in modo che gli aggiornamenti di MPD non eliminino questa modifica, aggiungere o modificare la seguente linea in /etc/pacman.conf:


NoUpgrade = etc/rc.d/mpd


Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:



MPD (Music Player Daemon) è un player audio con struttura client-server, prima parte.


Potrebbero interessarti anche :

Ritornare alla prima pagina di Logo Paperblog

Possono interessarti anche questi articoli :