MPD (Music Player Daemon) est un lecteur qui utilise une architecture client/serveur, ce qui permet de le contrôler à distance. De nombreux clients sont disponibles. Il reste néanmoins un lecteur de choix pour une machine de bureau, léger et efficace.
Configuration
A l'installation, le paquet créé un service init pour le lancer au démarrage. La configuration se fait dans le fichier /etc/mpd.conf.
Lancement en tant qu'utilisateur
Le service est lancé par root. Il est préférable de lancer mpd en tant qu'utilisateur. Pour le lancer en tant que l'utilisateur « foo », il suffit de mettre dans le mpdconf :
user "foo"
On peut aussi désactiver le service, soit en éditant /etc/default/mpd :
START_MPD=false
soit en désactivant le service :
# update-rc.d -f mpd remove
Dans ce cas, la configuration se fait dans le fichier ~/.mpdconf.
Chemins
Il faut définir différents chemins pour pouvoir utiliser mpd :
- music_directory : dossier où se trouvent les musiques ;
- playlist_directory : dossier où se trouvent les playlists ;
- db_file : fichier de la base de données ;
- log_file : fichier de log ;
- error_file : fichier de log des erreurs.
- pid_file : fichier contenant le pid (pour pouvoir fermer proprement le programme)
Par exemple :
music_directory "~/Musique" playlist_directory "~/.mpd/playlists" db_file "~/.mpd/mpd.db" log_file "~/.mpd/mpd.log" error_file "~/.mpd/mpd.error" pid_file "~/.mpd/mpd.pid"
N'oubliez pas de créer les dossiers si nécessaire.
Il vous faudra créer une base de données pour pouvoir l'utiliser. Pour cela, il suffit de lancer :
mpd --create-db
Il faut renouveler l'opération à chaque fois que le catalogue de musique change.
Sortie Audio
Alsa simple
Pour pouvoir lire le son via alsa, il faut rajouter une section dans mpdconf :
audio_output {
type "alsa"
name "my ALSA device"
}Il faut aussi définir le mixer. Par exemple, pour utiliser PCM :
mixer_type "alsa" mixer_device "default" mixer_control "PCM"
Alsa avec mixer séparé
Vous pouvez aussi définir un mixer « virtuel » pour contrôler le volume de MPD séparément. Pour cela, il faut créer un fichier /etc/asound.conf :
# the sound card
pcm.real {
type hw
card 0
device 0
}
# the ipc stuff is needed for permissions, etc.
pcm.dmixer {
type dmix
ipc_key 1024
ipc_perm 0666
slave.pcm "real"
slave {
period_time 0
period_size 1024
buffer_size 8192
rate 44100
}
bindings {
0 0
1 1
}
}
ctl.dmixer {
type hw
card 0
}
# software volume
pcm.softvol {
type softvol
slave.pcm "dmixer"
control {
name "Software"
card 0
}
}
# mpd volume control
pcm.mpdvol {
type softvol
slave.pcm "dmixer"
control {
name "MPD"
card 0
}
}
# ctrl for mpd volume
ctl.mpdvol {
type hw
card 0
}
# input
pcm.input {
type dsnoop
ipc_key 3129398
ipc_key_add_uid false
ipc_perm 0660
slave.pcm "810"
}
# duplex device
pcm.duplex {
type asym
playback.pcm "softvol"
capture.pcm "input"
}
# default devices
pcm.!default {
type plug
slave.pcm "duplex"
}
# for oss devices
pcm.dsp0 {
type plug
slave.pcm "duplex"
}Ensuite, dans le mpdconf, on définit la sortie Alsa, ainsi que le mixer
# Sortie Alsa :
audio_output {
type "alsa"
name "Alsa Software Volume"
device "mpdvol"
format "44100:16:2" # optional
}
# Mixer :
mixer_type "alsa"
mixer_device "mpdvol"
mixer_control "MPD"On peut aussi utiliser d'autres périphériques audio (OSS, ESD, Jack, PulseAudio). La configuration est détaillée dans le wiki mpd : http://mpd.wikia.com/wiki/Configuration#Audio_Outputs
Autres options
Vous pouvez définir un mot de passe pour certaines fonctions :
password "XXXX@read,add,control,admin"
Si vous avez des problèmes avec les accents dans les noms de fichiers, rajoutez :
filesystem_charset "UTF-8"
D'autres options existent, vous trouverez un fichier de configuration détaillé dans /usr/share/doc/mpd/mpdconf.example.
Utilisation
Il faut d'abord lancer le serveur. Si vous utilisez le service init :
/etc/init.d/mpd restart
Sinon, en tant qu'utilisateur :
mpd
Pour le contrôler il existe de nombreux clients à notre disposition :
- mpc : client en ligne de commande (très utile pour faire des lanceurs, des raccourcis claviers ou des scripts) ;
- ncmpc : un client simple en console ;
- ncmpcpp : un clone de ncmpc avec quelques options supplémentaires (recherche avancée, édition de tags,...) ;
- sonata : un très bon client en GTK ;
- ario : un client avec une interface proche de Rythmbox ;
- gmpc : un client graphique pour Gnome.
Il en existe plein d'autres : http://mpd.wikia.com/wiki/Clients
Utilisation en webradio
MPD peut se commander à distance. Mais il peut aussi service de source pour un serveur ?ShoutCast ou Icecast. Pour installer un serveur Icecast : http://www.andesi.org/admin:installer-un-serveur-icecast
Il suffit alors de définir une sortie audio supplémentaire pour le serveur Icecast :
audio_output {
type "shout"
name "example.org"
host "localhost"
port "8000"
mount "/mpd.ogg"
password "XXXXXX"
quality "5.0"
# bitrate "128"
format "44100:16:1"
user "source"
# description "My Stream Description" # optional
# genre "jazz" # optional
# public "no" # optional
}Avec :
- name : nom du serveur Icecast ;
- host : nom ou IP du serveur Icecast (localhost, s'il est sur la même machine) ;
- passwd : le mot de passe définit pour la source dans la configuration de Icecast.
- quality ou bitrate : il faut définir un seul des deux
- description, genre et public : informations supplémentaires qui apparaitront dans le lecteur audio qui lit le flux.
Attention : Si vous ne configurez pas d'autre sortie (alsa, par exemple), vous aurez probablement un message d'erreur « cannot open mixer ». Il vous suffit alors de créer une sortie « null » pour pallier le problème :
audio_output {
type "ao"
driver "null"
name "Dummy output"
}Si vous avez un serveur web avec support du php, vous pouvez utiliser des clients comme phpMp+ : http://mpd.wikia.com/wiki/Client:PhpMpplus Ainsi vous pourrez commander MPD à distance à l'aide d'un simple navigateur.
Ressources
Wiki MPD (en) : http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki
