Table des matières

mpd - Installation, configuration et utilisation

Installation

apt-get install mpd

Pour la configuration préconisée dans ce tuto, je recommande très vivement de désactiver le lancement de mpd au démarrage du système : Il faut d'abord stopper le daemon mpd qui a été lancé lors de l'installation :

si vous utilisez systemd :

systemctl stop mpd.socket

Et

systemctl stop mpd
update-rc.d mpd stop

Et ensuite le désactiver complètement :

systemctl disable mpd.socket

Et

systemctl disable mpd

Si vous n'utilisez pas systemd :

update-rc.d mpd disable

Configuration

La configuration de mpd dépend de la façon dont vous comptez vous en servir.
Je propose ici une configuration simple pour utiliser le daemon en tant que simple utilisateur avec une sortie son vers une carte son gérée par pulseaudio et une configuration alternative pour alsa.

D'abord il va falloir créer le répertoire2) pour mpd dans votre répertoire /home. Dans un terminal user, depuis un shell :

cd ~

et

mkdir .config/mpd

Ensuite vous pouvez copier le fichier de configuration fournit par debian dans /etc :

cp /etc/mpd.conf ~/.config/mpd/

Nous allons éditer3) ce fichier (~/.config/mpd/mpd.conf) pour y définir quelques options.

Le format de ce fichier est simple. Chaque ligne qui débute par un caractère # est un commentaire et n'est donc pas lu pour être exécuté.

Les options sont de la forme :

option   "valeur"

ou

option {
    sous_option1 "valeur1"
    sous_option2 "valeur2"
    ...
    
}

Répertoire musical

Mais avant toutes choses, il faut décider où vous allez mettre votre musique.
En effet, lorsque vous allez mettre la base de données de mpd à jour il ne va scanner qu'un répertoire et ses sous dossiers, récursivement.
Je vous suggère :

 ~/Musique/.

S'il n'existe pas créons d'abord ce répertoire :

mkdir ~/Musique/

Il se peut que ce répertoire existe déjà car c'est un répertoire standard pour stocker la musique actuellement. Normalement, c'est le répertoire renvoyé par

xdg-user-dir MUSIC

Options

Voyons à présent les options du fichier de configuration.

Où est stocké votre musique :
(Supposons que vous soyez l'utilisateur tartampion et que votre home soit /home/tartampion) ;-)

music_directory     "/home/tartampion/Musique"

playlists

Où sont les playlists :

playlist_directory    "/home/tartampion/.config/mpd/playlists"

Créons ce répertoire :

mkdir ~/.config/mpd/playlists

Base de données

La base de données est :

db_file   "/home/tartampion/.config/mpd/tagcache"

Journal

Le journal :

log_file   "/home/tartampion/.config/mpd/log

Identifiant numérique de mpd

Le fichier de pid :

 pid_file "/home/tartampion/.config/mpd/pid

Statut

Le statut du daemon :

state_file   "/home/tartampion/.config/mpd/state"

Information

Un fichier qui stocke des informations dynamiques au sujet du fichier qui est en train d'être joué :

sticker_file    "/home/tartampion/.config/mpd/sticker.sql"

L'utilisateur de mpd

Le réglage de l'utilisateur doit être commenté. Nous avons copié le fichier /etc/mpd.conf qui a été écrit pour démarrer mpd en tant que root et demander à mpd de changer d'utilisateur une fois démarré. Ce réglage ne correspond pas du tout à ce qu'on veut faire ici. C'est important, car on veut juste démarrer mpd directement avec les droits de notre utilisateur et mpd ne pourra pas démarrer si on laisse ce réglage.

Il faut commenter la ligne

user = "mpd" 

Ce n'est pas du tout ce qu'on veut. Pour cela juste rajouter un #en tout début pour obtenir :

#user = "mpd"

Interface mpd

L'interface sur laquelle mpd reçoit les commandes.

Je vous suggère de restreindre cet accès.

Par défaut mpd écoute sur toutes les interfaces actives.

bind_to_address   "localhost"

On peut aussi préciser le port sur lequel mpd écoute.

port "6600"

On peut aussi utiliser un socket unix, il suffit d'utiliser un nom de fichier à la place d'une adresse ip ou d'un nom d'hôte. Par exemple :

bind_to_address "/home/tartampion/.config/mpd/socket"

Dans ce cas l'option port n'est pas utilisée.

Il faut aussi configurer les clients avec la même adresse et le même port, sinon ça ne marchera pas

Sortie audio

Configurons la sortie audio.

pulseaudio

De nos jours, c'est la configuration par défaut dans le fichier que nous avons copié (/etc/mpd.conf). Donc en principe, il n'y a rien à faire.

Vérifiez quand même que vous avez la sortie activée, vous devriez trouver ceci :

audio_output {
	type		"pulse"
	name		"My Pulse Output"
#	server		"remote_server"		# optional
#	sink		"remote_server_sink"	# optional
}

Remarquez bien que pour la sous option « name », vous pouvez mettre le nom que vous voulez.
Il y a dans ce fichier pas mal d'exemples de configuration pour diverses sorties audio qui sont mises en commentaires (toutes les lignes débutent par un #).

alsa

Pour utiliser alsa directement il faudra commenter la sortie audio pour pulseaudio pour obtenir cela :

#audio_output {
#	type		"pulse"
#	name		"My Pulse Output"
##	server		"remote_server"		# optional
##	sink		"remote_server_sink"	# optional
}

On ajoute juste des # au début de chaque ligne.

Une configuration avec alsa :

audio_output {
        type "alsa"
        name "MPD alsa output"
#	device		"hw:0,0"	# optional
#	format		"44100:16:2"	# optional
#	mixer_type      "hardware"      # optional
#	mixer_device	"default"	# optional
#	mixer_control	"PCM"		# optional
#	mixer_index	"0"		# optional
}

Vous pouvez fixer aussi les sous options, device, format,..
Mais en principe, de nos jours, on utilise un serveur de son comme pulseaudio ou jackd, c'est pour cela que je ne m'y attarderai pas.

Dans ce cas c'est la configuration pour pulseaudio qui devra être commentée.

Voilà, le serveur est configuré ! Il vous reste à garnir votre répertoire ~/Musique.
Je vous suggère d'adopter une organisation par répertoires du style :
<groupe_ou_chanteur>/<album>/<fichiers_musicaux>.

En effet les clients pour mpd, utilisent cette méthode pour accéder aux fichiers.
Notons bien que ces clients permettent également d'accéder aux tags des fichiers mp3, ogg, flac,…

En réalité, c'est mpd qui construit une base de données avec ces tags et l'endroit où se trouvent les fichiers.

On peut utiliser mpd sans client sur une machine, on peut alors contrôler mpd depuis une autre machine. Mais je recommande plutôt, d'utiliser un client local et un accès ssh pour accéder à ce client local.
On peut aussi utiliser mpd pour diffuser de la musique en streaming. Il faut alors configurer mpd pour utiliser une sortie de type icecast ou http. Des exemples sont fournis dans le fichier de configuration par défaut, ils sont mis en commentaire. Recherchez, les options audio_output.

Démarrage

Normalement après avoir tout configuré mpd devrait démarrer automatiquement lors de votre connexion à votre session graphique. C'est fait grâce au fichier :

/etc/xdg/autostart/mpd.desktop

Pour la plupart des gens, ce mode de fonctionnement suffira. Cela dit on peut vouloir faire différemment, car dans ce mode de fonctionnement il démarrera à chaque nouvelle session mais ne sera jamais arrêté. Une autre façon de faire est de démarrer mpd à l'aide de systemd en tant qu'utilisateur. Pour ce faire il va d'abord falloir dire au système d'autostart de ne pas démarrer mpd. On va donc créer un fichier

mpd.desktop

dans le répertoire

~/.config/autostart/

avec le contenu suivant :

~/.config/autostart/mpd.desktop
[Desktop Entry]
Hidden=true

Avec cela, mpd ne démarre plus avec une session graphique. Reste à le faire démarrer avec systemd. C'est très simple. Il suffit de taper la commande suivante en étant utilisateur :

 systemctl --user enable mpd

Et c'est tout ! Maintenant mpd sera démarré dès que vous vous connecterez, même avec une session texte dans un tty. Il sera aussi arrêté dès que vous vous déconnecterez.

Merci à vv222 pour m'avoir indiqué cette façon de faire :-)

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
3)
Voir : nano