MPD, ou comment mieux écouter sa musique sous Linux

J’étais un peu sceptique quand on m’a présenté MPD, une solution client/serveur sous Linux pour lire sa musique. En effet, me suis-je dit, quelle est l’utilité d’avoir un serveur + un client quand un seul logiciel suffit et offre énormément de possibilités ?

1) Le principe


Je vais essayer de ne pas être trop technique ni de faire d’erreur. MPD signifie Media Player Daemon (Démon de lecteur multimedia) : ce n’est pas un truc sataniste. Un démon, sous Linux, est un service qui fonctionne en tâche de fond. Ce service permet de :

  • Diffuser un flux musical (en local ou en réseau) avec la piste en cours de lecture
  • Parcourir une liste de lecture
  • Tenir à jour une base de donnée des morceaux et des playlists enregistrées

Il n’a aucun contrôle pour choisir le morceau en lecture, mettre en play/pause/stop ni aucune autre fonctionnalités. C’est l’équivalent d’un streaming de radio, mais sur votre PC : on écoute juste (et limite on peux arrêter si on en a marre). Mais comment on choisis ce qu’on lit, me direz-vous ? Et bien grâce au client. Le client est un logiciel qui va se connecter au démon (que ce soit sur la machine ou en réseau local voir même via internet !) et vous permettre de contrôler la lecture. Il n’est pas nécessaire pour ÉCOUTER la musique, mais seulement pour la CONTRÔLER. Certains clients offrent de plus des fonctionnalités avancées comme celles des lecteurs que je vous présentait ici. Le tout fonctionne de façon transparente pour l’utilisateur, mais permet des avantages non négligeables :

Stabilité performance et mémoire


J’avais deux problèmes dans mon utilisation régulière d’Exaile et de Listen : malgré le fait qu’ils avaient toutes les fonctionnalités que je voulais ou presque, ils étaient lourds (surtout Listen), et buggaient parfois en quittant et interrompant la musique. Assez moyen quand on aime bien faire des mix de soirée, et de toute façon c’est en général très frustrant quand un de vos morceaux favoris s’interrompt en plein milieu. Un service en tâche de fond et peut être contrôlé par plusieurs interfaces sans pouvoir bugguer (même si l’interface s’arrête de fonctionner). Mieux : si le démon est exécuté sur une autre machine, l’extinction de la machine client n’interrompt pas forcément la musique (c’est une option à configurer sur le client). Enfin, MPD mémorise toujours l’état actuel (mais pas la position dans la piste, heureusement), et après un arrêt il reprendra exactement là où il s’était arrêter, en conservant les options (volume, aléatoire, répétition…) et la liste de lecture en cours. Très pratique ;)

Flux et interopérabilité


Vu le nombre de clients multiplateforme disponibles, vous n’avez que l’embarras du choix pour écouter votre musique. Un serveur MPD sous Linux peut streamer en local voir même sur internet, ce qui vous permet théoriquement d’écouter votre musique partout : sur votre machine hôte, votre PC portable, votre téléphone (grâce aux clients Windows Phone 7, Android ou IOS, chez des amis ou même via une interface web. Vous avez donc un partage du flux musical en cours, de la bibliothèque complète et des contrôles (optionnel) en local ou sur internet, ce qui permet de diffuser votre musique partout dans la maison, sur tout les appareils compatibles, et même de disposer de votre propre webradio pour les plus ambitieux (je tenterais ça quand j’aurais une config serveur convenable et silencieuse).

2) Configuration


Deux paquets sous Linux sont nécessaires : mpd et mpc (qui ajoute des contrôles de base en console). Par exemple pour Ubuntu :

$ sudo apt-get install mpd mpc
Éditez ensuite le fichier /etc/mpd.conf, normalement tout les paramètres ont été détectés, vous n’avez pas grand chose à changer. Vérifiez juste le dossier musique, et voyez si vous voulez personnaliser l’emplacement des autres dossiers (playlists, db…). Voici par exemple ma configuration :
port "6600"
music_directory "/home/djul/musique"
playlist_directory "/home/djul/Musique/Playlists"
db_file "~/.mpd/mpd.db"
log_file "/var/log/mpd.log"
error_file "~/.mpd/mpd.error"
Commentez également la ligne suivante :
#mixer_type "software"

3) Quelques clients

Après quelques heures de comparaisons, j’ai retenu 3 clients pour Gnome très pratiques : 

Sonata : Un client très simple et élégant : en un clic vous avez les infos et les paroles de la chanson en cours, la playlist, l’explorateur de fichier ou de bibliothèques et l’accès aux services web (webradios, podcasts, last.fm…). Certains seront par contre rebutés par son interface un peu trop minimaliste (on peut avoir du mal à trouver certaines fonctions). 


GMPC : Probablement le plus complet, même si quelques points m’ont déçu. Il montre une interface épurée, facilement réductible et 4 modes d’exploration (sans compter la recherche) : Dossier, Genre, Artiste et Contextuel en fonction du terme voulu. Ces modes font beaucoup usage des pochettes, alors pensez à les ajouter dans les tags.


Ario : Un client simple et léger très ressemblant à Rhythmbox, très bien intégré à Gnome et libnotify. Il peut automatiquement récupérer vos pochettes (le système est performant, pour une fois). Point faible : pas de touche d’accès rapide pour vider la playlist, avoir les infos ou gérer les playlist dynamiques. Il est également un peu moins complet que ses confrères.


Il existe bien entendu une myriade de clients, pour Windows, Mac ou Linux, en Python ou en Java, utilisant les bibliothèques Qt ou GTK, et même des clients en console pour revendiquer votre geekerie : mpc et ncmpcpp. Voyez également la liste des clients officiels. J’utilise également, quand je n’ai pas besoin/envie de gérer une playlist (par exemple quand je bosse en musique) ou en accès rapide, le système de notification d’Ubuntu/Mint, Sound-indicator, rendu compatible avec MPD via ce tuto. Amusez-vous donc bien avec MPD, et n’hésitez pas à partager vos bidouilles ou découvertes sur le sujet.

Tilda+ncmpdcpp et Sound-indicator
Vus : 1576
Publié par Djul : 28