====== mpd - Installation, configuration et utilisation ====== * Objet : mpd - configuration * Niveau requis : {{tag>avisé}} * Commentaires : //La configuration de mpd dépend de la façon dont vous comptez vous en servir. // * Suivi : {{tag>à-tester}} * Création par [[user>enicar]] 02/10/2013 * Testé par <...> le <...> * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=149450#p149450 | c'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== 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épertoire(([[:doc:systeme:mkdir]])) pour mpd dans votre répertoire ''/home''. Dans un terminal user, depuis [[doc:programmation:shell:shell | 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 éditer((Voir : [[:doc:editeurs:nano]])) 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 : \\ ''''/''''/''''. 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 : [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 :-)