Music Player Daemon (Français)

From ArchWiki
État de la traduction: Cet article est la version francophone de Music Player Daemon. Date de la dernière traduction: 2022-10-03. Vous pouvez aider à synchroniser la traduction s'il y a eu des changements dans la version anglaise.

MPD (music player daemon) est un lecteur audio doté d'une architecture client-serveur. Il lit des fichiers audio, organise des listes de lecture et maintient une base de données musicale, tout en utilisant très peu de ressources. Afin de s'interfacer avec lui, un client séparé est nécessaire.

Installation

Installez le paquet mpd, ou mpd-gitAUR pour la version de développement.

Configuration

MPD peut fonctionner en mode #Configuration par utilisateur ou #Configuration à l'échelle du système (les paramètres s'appliquent à tous les utilisateurs). Il est également possible d'exécuter plusieurs instances de MPD dans une #Configuration de Multi-MPD. Le mode de configuration de MPD dépend de la façon dont il est destiné à être utilisé : une configuration locale par utilisateur est plus facile à mettre en place et peut s'avérer plus adaptée sur un système de bureau. La configuration à l'échelle du système peut être plus adaptée à un serveur audio toujours actif avec plusieurs utilisateurs mais une instance MPD partagée.

Pour que MPD soit capable de lire de l'audio, ALSA, éventuellement avec PulseAudio ou PipeWire, doit être configuré et fonctionner. La section #Configuration audio ci-après décrit les paramètres nécessaires pour ALSA, PulseAudio ou PipeWire.

MPD est configuré dans le fichier mpd.conf(5) qui peut se trouver à différents endroits selon la configuration choisie (système ou par utilisateur). En résumé, les deux emplacements couramment utilisés sont :

  1. ~/.config/mpd/mpd.conf en mode de configuration par utilisateur, c'est le premier emplacement recherché,
  2. /etc/mpd.conf en mode de configuration système.

Voici quelques-unes des options de configuration les plus couramment utilisées :

  • pid_file - Le fichier où MPD stocke son ID de processus
  • db_file - La base de données musicale
  • state_file - L'état actuel de MPD est noté ici
  • playlist_directory - Le répertoire dans lequel les listes de lecture sont enregistrées
  • music_directory - Le répertoire dans lequel MPD recherche la musique
  • sticker_file - La base de données des autocollants

Configuration par utilisateur

MPD peut être configuré par utilisateur. L'exécuter en tant qu'utilisateur normal présente les avantages suivants :

  • Regroupement dans un seul répertoire ~/.config/mpd/ (ou tout autre répertoire sous $HOME) tous les fichiers de configuration de MPD.
  • Éviter les erreurs imprévues de permission des répertoires et des fichiers.

Configurer l'emplacement des fichiers et des répertoires

En mode utilisateur, la configuration est lue depuis $XDG_CONFIG_HOME/mpd/mpd.conf. Nous supposerons ici que $XDG_CONFIG_HOME est sa valeur par défaut de ~/.config.

Pour construire la configuration utilisateur, l'exemple de configuration MPD inclus dans le paquet est un bon point de départ, copiez-le en utilisant les lignes suivantes :

$ mkdir ~/.config/mpd
$ cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf

Une bonne pratique est d'utiliser ce répertoire nouvellement créé ~/.config/mpd/ pour stocker, avec le fichier de configuration, d'autres fichiers liés à MPD comme la base de données ou les listes de lecture. L'utilisateur doit avoir un accès en lecture et écriture à ce répertoire.

Ensuite, éditez le fichier de configuration afin de spécifier les fichiers et répertoires requis et optionnels :

~/.config/mpd/mpd.conf
# Recommended location for database
db_file            "~/.config/mpd/database"

# If running mpd using systemd, delete this line to log directly to systemd.
log_file           "syslog"

# The music directory is by default the XDG directory, uncomment to amend and choose a different directory
#music_directory    "~/music"

# Uncomment to refresh the database whenever files in the music_directory are changed
#auto_update "yes"

# Uncomment to enable the functionalities
#playlist_directory "~/.config/mpd/playlists"
#pid_file           "~/.config/mpd/pid"
#state_file         "~/.config/mpd/state"
#sticker_file       "~/.config/mpd/sticker.sql"

Si les listes de lecture sont activées dans la configuration, le répertoire de listes de lecture spécifié doit être créé :

$ mkdir ~/.config/mpd/playlists

MPD peut maintenant être lancé (un emplacement personnalisé facultatif pour le fichier de configuration peut être spécifié) :

$ mpd [fichier_de_configuration].

Afin de construire le fichier de base de données, MPD doit effectuer une recherche dans le music_directory défini ci-dessus. Pour demander cette tâche, l'un des clients de MPD doit être utilisé. Par exemple avec mpc la commande est :

$ mpc update

ou bien on peut définir l'option auto_update à "yes" dans la configuration pour rafraîchir la base de données chaque fois que des fichiers sont modifiés dans music_directory.

Configuration audio

Si ALSA est utilisé, l'autodétection du périphérique par défaut devrait fonctionner dès le départ sans réglage particulier. Si ce n'est pas le cas, la syntaxe pour la définition de la sortie audio ALSA est fournie par la suite ; le paramètre obligatoire name spécifie un nom unique pour la sortie audio. Le périphérique exact tel qu'il est affiché à l'aide de aplay --list-pcm du paquet alsa-utils peut éventuellement être indiqué avec l'option device.

~/.config/mpd/mpd.conf
sortie_audio {
        type "alsa"
        name "Carte son ALSA"
        # Optional
        #device "iec958:CARD=Intel,DEV=0"
        #mixer_control "PCM"
}

Les utilisateurs de PulseAudio devront effectuer la modification suivante :

~/.config/mpd/mpd.conf
sortie_audio {
        type "pulse
        name "pulse audio"
}

La sortie audio avec PipeWire peut être également configurée :

~/.config/mpd/mpd.conf
sortie_audio {
        type "pipewire
        name "PipeWire Sound Server"
}

Démarrage automatique avec systemd

Le paquet mpd fournit un fichier de service utilisateur. Le service démarre le processus en tant qu'utilisateur, il n'est pas nécessaire de modifier les permissions ni d'utiliser les variables user et group dans le fichier de configuration MPD.

Démarrez et activez l'unité utilisateur mpd.service (c'est-à-dire avec le paramètre --user).

Note: Le fichier de configuration est lu depuis ~/.config/mpd/mpd.conf, consultez Systemd (Français)#Modifier les unités fournies si vous souhaitez indiquer un chemin de fichier de configuration personnalisé.

Démarrage automatique à la connexion du tty

Pour démarrer MPD à la connexion, ajoutez ce qui suit à ~/.profile ou à un autre fichier de démarrage automatique :

# Démarrage du daemon MPD (si aucune autre instance utilisateur n'existe)
[ ! -s ~/.config/mpd/pid ] && mpd

Configuration scriptée

L'outil mpd-configure crée une configuration MPD optimisée pour la lecture audio sans perte, sans rééchantillonnage ni conversion, en utilisant l'adresse matérielle de l'interface ALSA (hw:x,y).

Configuration à l'échelle du système

Note: Les utilisateurs de PulseAudio avec une configuration MPD à l'échelle du système doivent implémenter une solution de contournement afin d'exécuter MPD en tant que son propre utilisateur !

Par défaut, /etc/mpd.conf conserve la configuration dans /var/lib/mpd qui est assignée à l'utilisateur ainsi qu'au groupe primaire MPD.

Répertoire de musique

Le répertoire de musique est défini par l'option music_directory dans le fichier de configuration /etc/mpd.conf.

MPD doit avoir les droits d'exécution sur tous les répertoires parents de la collection de musique et aussi les droits de lecture sur tous les répertoires contenant des fichiers de musique. Cela peut entrer en conflit avec la configuration par défaut du répertoire utilisateur, comme ~/Music, où la musique est stockée.

Bien qu'il existe plusieurs solutions à ce problème, l'une d'entre elles devrait être la plus pratique :

  • Passez plutôt en mode #Configuration par utilisateur.
  • Ajoutez l'utilisateur mpd au groupe de l'utilisateur et accordez au groupe le droit d'exécuter le répertoire de l'utilisateur. De cette façon, l'utilisateur mpd a le droit d'ouvrir le répertoire utilisateur :
# gpasswd -a mpd groupe_de_l'utilisateur
$ chmod 710 /home/ user_directory (répertoire utilisateur)
  • Stockez la collection de musique dans un chemin différent, soit :
    • en la déplaçant entièrement,
    • avec un mount bind,
    • ou avec Btrfs (Français)#Sous-volumes (vous devez rendre ce changement persistant avec une entrée dans /etc/fstab ).

Le fichier de configuration MPD doit définir un seul répertoire de musique. Si la collection de musique est contenue dans plusieurs répertoires, créez des liens symboliques sous le répertoire de musique principal dans /var/lib/mpd. N'oubliez pas de définir les permissions en conséquence sur les répertoires liés.

Pour exclure un ou plusieurs fichiers de la mise à jour, créez un fichier appelé .mpdignore dans son répertoire parent. Chaque ligne de ce fichier peut contenir une liste de caractères génériques du shell. Les fichiers correspondants dans le répertoire actuel et tous les sous-répertoires sont alors exclus des mises à jour suivantes.

Note: MPD est capable de lire les fichiers musicaux dans certains formats d'archives et les ajoutera lors d'une mise à jour s'ils se trouvent dans le répertoire music ; tar est connu pour être une exception.

Démarrer avec systemd

MPD peut être contrôlé avec mpd.service et systemd. Le premier démarrage peut prendre un certain temps car MPD va scanner votre répertoire de musique.

Testez tout en démarrant une application client (ncmpc est un client léger et facile à utiliser), et jouez de la musique !

Activation de socket

mpd fournit une unité mpd.socket. Si mpd.socket est activée (et mpd.service est désactivée), systemd ne lancera pas MPD immédiatement, il écoutera simplement les sockets appropriés. Ensuite, chaque fois qu'un client MPD tentera de se connecter à l'un de ces sockets, systemd lancera mpd.service et transmettra de manière transparente le contrôle de ces ports au processus MPD.

Si vous préférez écouter différents sockets UNIX ou ports réseau (même plusieurs sockets de chaque type), ou si vous préférez ne pas écouter les ports réseau du tout, éditez l'unité mpd.socket de manière appropriée et modifiez /etc/mpd.conf pour qu'elle corresponde à la configuration (consultez mpd.conf(5) pour plus de détails).

Processus de démarrage de mpd avec un id utilisateur

MPD ne doit jamais être exécuté en tant que root ; vous pouvez utiliser l'option user dans la configuration pour que MPD change son identifiant après l'initialisation. N'utilisez pas cette option si vous démarrez MPD en tant qu'utilisateur non privilégié. Pour décrire comment MPD abandonne ses privilèges de super-utilisateur et passe à ceux de l'utilisateur défini dans la configuration, les étapes d'un démarrage normal de MPD sont listées ci-après :

  1. MPD étant démarré en tant que root par systemd, il lit d'abord le fichier /etc/mpd.conf.
  2. MPD lit la variable user dans la configuration, et passe de root à cet utilisateur.
  3. MPD lit ensuite le reste du fichier de configuration et se configure en conséquence. L'utilisation de ~ dans le fichier de configuration pointe vers le répertoire de l'utilisateur principal, et non vers le répertoire de root.

Configuration de Multi-MPD

Exécution d'un serveur Icecast

Pour un deuxième MPD (par exemple avec une sortie Icecast pour partager de la musique sur le réseau) utilisant la même musique et la même liste de lecture que celui ci-dessus, il suffit de copier le fichier de configuration ci-dessus et de créer un nouveau fichier (par ex, /home/username/.mpd/config-icecast) et ne modifiez que les paramètres log_file, error_file, pid_file et state_file (par exemple, mpd-icecast.log, mpd-icecast.error, etc.) L'utilisation des mêmes chemins de répertoire pour les répertoires de musique et de liste de lecture garantit que ce second MPD utilise la même collection de musique que le premier, c'est-à-dire que la création et la modification d'une liste de lecture sous le premier daemon affectent également le second daemon. Les utilisateurs n'ont pas besoin de créer à nouveau les mêmes listes de lecture pour le second daemon. Appelez ce second daemon de la même manière qu'avec ~/.xinitrc ci-dessus - mais assurez-vous d'avoir un numéro de port différent, pour éviter un conflit avec le premier daemon MPD.

Configuration du satellite

La méthode décrite dans #Exécution d'un serveur Icecast fonctionne, mais au moins en théorie, elle peut entraîner des problèmes avec la base de données, lorsque deux instances MPD essaient d'écrire simultanément dans le même fichier de base de données. MPD dispose d'un mode satellite dans lequel une instance peut recevoir la base de données d'une instance MPD déjà en cours d'exécution.

Dans votre config-icecast, ajoutez ceci, où l'hôte et le port reflètent votre serveur MPD principal :

database {
    plugin "proxy"
    host "localhost"
    port "6600"
}

Clients

Un client séparé est nécessaire pour contrôler MPD. Vous pouvez consulter une longue liste de clients sur le site mpd website. Les options populaires sont :

Ligne de commande

  • mpc — Interface utilisateur en ligne de commande pour le serveur MPD écrite en C.
https://www.musicpd.org/clients/mpc/ || mpc

Console

  • clerk — Client MPD utilisant Rofi.
https://github.com/carnager/clerk || clerk-gitAUR
  • FMUI — Console interface utilisateur créée avec fzf et mpc.
https://github.com/seebye/fmui || fmui-gitAUR
  • ncmpc — Client en ncurses pour MPD écrit en C++.
https://www.musicpd.org/clients/ncmpc/ || ncmpc
  • ncmpcpp — Clone presque exact de ncmpc, écrit en C++ avec quelques fonctionnalités supplémentaires (éditeur de balises, moteur de recherche).
https://rybczak.net/ncmpcpp/ || ncmpcpp
  • ncmpy — Client MPD basé sur curses et écrit en Python.
https://repo.cykerway.com/ncmpy || ncmpyAUR
  • nncmpp — Encore un autre client MPD. Il s'agit en fait d'une version TUI simplifiée de Sonata.
https://git.janouch.name/p/nncmpp/ || nncmpp-gitAUR
  • pms — Client ncurses hautement configurable et accessible écrit en Go.
https://ambientsound.github.io/pms/ || pmus-gitAUR
  • vimpc — Client MPD basé sur ncurses avec des raccourcis clavier de type vi.
https://github.com/boysetsfrog/vimpc || vimpc-gitAUR
  • gomp — Client MPD inspiré de ncmpcpp avec affichage intégré de la couverture et intégration de LastFM.
https://github.com/aditya-K2/gomp || gomp-gitAUR

Graphique

  • Ario — Un client GUI GTK3 très riche en fonctionnalités pour MPD, inspiré de Rhythmbox.
http://ario-player.sourceforge.net/ || ario
  • Cantata — Client Qt5 riche en fonctionnalités pour MPD avec une interface très configurable.
https://github.com/CDrummond/cantata || cantata
  • CoverGrid — Client GUI GTK3 se concentrant sur les albums plutôt que sur les pistes individuelles.
https://www.suruatoel.xyz/codes/mcg || mcgAUR
  • GMPC — Gnome Music Player Client. Interface GTK pour MPD. Elle est conçue pour être légère et facile à utiliser, tout en offrant un accès complet à toutes les fonctionnalités de MPD. Les utilisateurs disposent de plusieurs méthodes différentes pour naviguer dans leur musique. Il peut être étendu par des plugins, dont beaucoup sont disponibles.
https://github.com/DaveDavenport/gmpc || gmpcAUR
  • mpdevil — Un petit client GTK MPD écrit en python.
https://github.com/SoongNoonien/mpdevil || mpdevilAUR
  • pymp'd — Un client avec une interface GTK pour le daemon de lecture de musique MPD.
http://pympd.sourceforge.net || pympdAUR
  • QMPDClient — Qt5 GUI client.
https://bitcheese.net/QMPDClient/ || {AUR}}
  • Quimup — Frontend Qt5 simple pour MPD écrit en C++.
https://sourceforge.net/projects/quimup/ || quimupAUR
  • RompЯ — Client Web pour MPD.
https://fatg3erman.github.io/RompR/ || romprAUR
  • SkyMPC — Client MPD simple, optimisé par Qt5.
https://github.com/soramimi/SkyMPC || skympc-gitAUR
  • Sonata — Client Python élégant en GTK.
https://www.nongnu.org/sonata/ || sonata-gitAUR
  • Xfce MPD Panel Plugin — Plugin MPD pour le pannel de Xfce4
https://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin || xfce4-mpc-plugin
  • Xfmpc — Client graphique GTK MPD axé sur un faible encombrement.
https://goodies.xfce.org/projects/applications/xfmpc || xfmpc
  • ympd — Standalone MPD Web GUI écrite en C, utilisant Websockets et Bootstrap/JS.
https://ympd.org/ || ympdAUR
  • Ymuse — Front-end (client) GTK facile, fonctionnel et accrocheur pour Music Player Daemon écrit en Go.
https://yktoo.com/en/software/ymuse/ || ymuseAUR

Voir aussi