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/mpdconf.
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 celà, il suffit de lancer :
mpd --create-db
Il faut renouveller 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 celà, 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.
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