MPD – Music Player Daemon

C’est quoi ?

Si comme moi vous aimez que de la musique se joue sans pour autant avoir le besoin de regarder fixement le player qui en est à l’origine, MPD est fait pour vous !
Je m’explique: MPD est en fait comme son nom l’indique une application pouvant tourner en arrière plan de façon complètement autonome.

Et alors ? En quoi ça pourrait m’intéresser ?
Bah voilà, quand tu veux mettre de la musique actuellement, tu es obligé d’avoir ton lecteur multimédia allumé en permanence, si tu le coupes, ta musique s’arrête. Dans le cas présent, tu peux configurer les musiques que tu as envie de lire, et puis tu quittes ton programme, la lecture continue…

Allez bon, tu m’as convaincu, comment ça marche ton truc ?
MPD n’est autre qu’un serveur qui dialogue avec ses clients (oui au pluriel ça peut être vachement pratique d’en combiner plusieurs vous allez voir pourquoi) via l’intermédiaire d’un port (par défaut le 6600) et qui lit sagement la musique qu’on lui a imposé.
Et pour ne rien gâcher au plaisir il est capable de le faire sur plusieurs sorties : Vos baffles évidemment (puristes : alsa, pulseaudio, oss), un streaming http, vers un serveur icecast, shoutcast ou encore un pipe.

Mais quel intérêt de faire ça ? Il y en a des tas : Ne plus avoir un lecteur multimédia qui traine dans les pattes, utiliser un minimum de ressources système pour faire autre chose, pouvoir n’ouvrir que le client quand nécessaire (changer de chanson ou refaire votre playlist).

Mes clients

Je vous donne la liste de tous mes clients et pourquoi je les utilise :

  • gmpc : Gnome Media Player Controler, la grosse usine à gaz multifonction, pour refaire mes playlists, ou changer les chansons dans la liste de lecture courante (le plus multifonction en fait).
  • mpc : Client succinct en ligne de commande, très pratique pour taper un petit ‘mpc stop’ si vous en avez marre ou ‘mpc next’ car cette chanson est vraiment trop pourrie quand vous êtes dans une console, a sa franche utilité pour faire marcher les raccourcis clavier aussi.
  • ncmpc : un client se rapprochant plus de gmpc au niveau des fonctionnalités mais lui en ligne de commande utilisant ncurses (bon ça reste de la ligne de commande, mais elle devient classe ^^). On a pas toujours une interface graphique/serveur X sous la main alors qu’une liaison SSH c’est tellement courant.
  • conky : et oui, quoi de mieux qu’un petit conky qui zone sur votre fond d’écran vous rappelant que vous êtes en train d’écouter tel ou tel morceau de tel artiste ?
  • gnome-applet-music : une petite barre dans votre gnome-panel vous permettant de voir à chaque instant ce que votre lecteur vous joue, vous permettre de le mettre en pause ou de passer la musique suivante ?
  • Droid MPD Client : Comme son nom l’indique c’est un client Android ayant une bonne partie des fonctions nécessaires.
  • Les touches multimédias : qui ne sont pas à proprement parler un client MPD mais qui correctement configurées peuvent vraiment vous rendre des tonnes de services.

Ah oui j’oubliais, pour la plupart des clients, il est possible de se connecter au serveur MPD depuis n’importe quel autre pc, suffit que le port 6600 soit accessible et de spécifier qu’on va pas se connecter au localhost (choix par défaut )

Tu sais que tu m’intéresses toi ?
Ça tombe bien j’écris pour ça ;-), bon ça va un peu beaucoup ressembler à tous les tutos pour installer MPD, mais comme c’est le mien c’est le meilleur :-P (tonne d’auto-dérision inside hein ^^)

L’installation

yum install mpd mpc ncmpc gmpc gnome-applet-music python-mpd

Le seul que j’ai pas cité avant c’est python-mpd et celui ci permet au gnome-applet-music de dialoguer avec MPD.

Il ne trouve pas MPD ?!

Normal, il se trouve dans un autre dépôt que ceux par défaut : rpmfusion.  Explication et installation des dépôts ici.

La configuration du serveur MPD :

Le contenu de mon fichier /etc/mpd.conf
récupéré par un petit

grep -v ^# /etc/mpd.conf

Récupère toutes les lignes du fichier mpd.conf ne commençant PAS par le caractère ‘#’

Mon fichier mpd.conf

music_directory		"~/Musique"            # Endroit où votre musique est stockée
playlist_directory	"~/.mpd/playlists"    # Les playlists y seront stockées
db_file			"~/.mpd/mpd.db"     # La db permettant une recherche rapide dans les fichiers sera stockée dans ce fichier
log_file			"~/.mpd/mpd.log"    # Si vous avez un problème, allez d'abord voir là
state_file			"~/.mpd/mpdstate"  # Le statut de mpd au cas où on l'éteint, (pour pouvoir recommencer là où il était)

user "lgnap"             # L'utilisateur dans lequel mpd devra après son lancement s'approprier les droits (il ne faut jamais faire tourner un serveur sous root)

input {
       plugin "curl"
}

# Ci-dessous tout ce qui est sorties son, streaming http et pulseaudio pour ma part
audio_output {
       type		"httpd"
       name		"My HTTP Stream"
       encoder		"vorbis"		# optional, vorbis or lame
       port		"8000"
       quality		"5.0"			# do not define if bitrate is defined
       format		"44100:16:1"
}
audio_output {
       type		"pulse"
       name		"My Pulse Output"
}

Il faut ensuite créer les répertoires suivants :

mkdir ~/.mpd
mkdir ~/.mpd/playlists

Les autres fichiers seront créés par mpd quand il démarrera.

Premier démarrage

En tant que root :

mpd –create-db

Votre premier démarrage de MPD vient de mettre en place toute la base de données.

Quelques petits trucs

Il peut être pratique d’avoir toujours MPD démarré sous la main prêt à intervenir et à lancer sa musique

Système > Administration > Services > MPD > personnaliser > Niveau d’exécution 3, 4, 5

Par contre le défaut de ceci est que si vous avez oublié de couper la musique avant de couper votre ordinateur, vous pourriez avoir une mauvaise surprise en le lançant le lendemain matin, la musique tonitruante. Dans un auditoire, ou au bureau c’est du plus mauvais effet.

On va donc lui dire de s’arrêter juste avant l’arrêt de votre machine et du serveur proprement dit :

On retourne en tant que root dans le fichier /etc/init.d/mpd
et on modifie un petit peu la fonction stop comme ceci :

J’ai glissé un petit “mpc stop” juste avant le kill proc du serveur

stop() {
echo -n $”Stopping $prog: ”
mpc stop
killproc $mpd
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $lockfile
echo
}
Apparemment ce bout de code ne fonctionnerait pas. Mais il devrait. Tant que j’ai rien trouvé d’autre et de fonctionnel je le laisse barré

Configurer les clients

Bon faut configurer la tonne de clients qu’on a installé maintenant :

gMpc

Il suffit de le démarrer une première fois et de laisser tous les paramètres par défaut, la seule chose à préciser dans la config c’est l’emplacement de votre dossier de musique, et de se connecter automatiquement au démarrage.

Navigateur de fichiers et Recherche sont mes deux fonctions préférées.

mpc

Il y a rien a configurer. Les commandes les plus pratiques sont :

mpc toggle #passe de play à pause et inversement
mpc stop #arrête la lecture (il redémarrera à la plage où vous l’avez arrêté)
mpc play #le relance (mpc toggle fonctionne aussi pour relancer la lecture)
mpc #donne un bref statut du lecteur (par défaut: la chanson lue, son état, sa position dans la playlist et dans la chanson, et quelques paramètres du serveur (volume etc))
mpc prev #passe à la chanson précédente
mpc next #passe à la chanson suivante
mpc seek +00:00:05 #saute de 5 secondes en avant
mpc seek -00:00:05 #et là en arrière
#vous pouvez aussi indiquer un temps absolu (retirer le +/-) ou un pourcentage (qui peut être relatif ou absolu lui aussi (même histoire avec le +/-))

Music Applet plugin

Clic droit sur un des gnome-panel > ajouter au tableau de bord > chercher “Music Applet” > Clic droit sur l’applet > Greffons > Selectionner MPD et le définir comme plugin préferé > Rien à préciser dans la configuration

Avec un clic droit > Préférences, vous pouvez régler plein de paramètres sur ce qui est affiché. Moi j’affiche les infos, le temps et les contrôles.

ncmpc

J’ai juste envie de vous dire : essayez. Tapez 1 si vraiment vous vous en sortez pas, cela affichera l’aide

conky

Je vais juste reprendre mes lignes de configuration de conky pour cette section. Allez voir ce lien si vous voulez plus d’infos.

${mpd_elapsed}/${mpd_length} ${mpd_status} (${mpd_bitrate} kb/s)
${mpd_percent}% ${mpd_bar 5,300}
${mpd_smart 40%}

Droid MPD Client

Il faut renseigner la bonne adresse ip (vous pouvez par exemple forcer l’adresse ip à rester la même via le DHCP de votre routeur).

Et n’oubliez pas soit de désactiver votre parefeu, soit d’ouvrir le port 6600, sinon ça ne marchera pas.

Les touches multimédias

J’ai longtemps utilisé empcd qui fonctionnait très bien, mais il n’est plus nécessaire.
Aller dans Système > préférences > raccourcis claviers – Supprimer les touches dont on a besoin (pour moi, play pause, stop, suivant, précédent).
Et en restant dans le même menu associer les touches avec les commandes mpc toggle, mpc stop, mpc next, mpc prev

Posted in Linux by El Gnap at June 19th, 2010.
Tags: , , , , , , , , ,

One Response to “MPD – Music Player Daemon”

  1. […] Pour la configuration proprement dite, je vous invite à voir ce post qui était le plus complet possible à ce niveau. […]