URL: https://linuxfr.org/news/music-player-daemon Title: Music Player Daemon Authors: kaliko Jiehong, ianux, SidStyler, Benoît, Sidonie_Tardieu, olivierweb, JGO, patrick_g, L@ur3nt, xcomcmdr, 태, barmic, Nÿco et Benoît Sibaud Date: 2013年05月11日T12:21:16+02:00 License: CC By-SA Tags: mpd Score: 38 [La mise en place d'un nouveau site web](http://www.musicpd.org/news/2013/04/new-website/) pour le projet MPD est l'occasion de revenir sur ce lecteur audio.  ---- [Site officiel](http://www.musicpd.org) [Protocole réseau de MPD](http://www.musicpd.org/doc/protocol/) [Manuel de l'utilisateur](http://www.musicpd.org/doc/user/) ---- « Music Player Daemon » est un lecteur audio écrit en C et basé sur une architecture client/serveur. MPD peut lire la plupart des formats audio pour peu qu'il soit compilé avec la prise en charge de ces derniers. Il permet de diffuser sur la carte son de l'hôte, de relayer le flux audio à un serveur dédié comme [icecast](http://www.icecast.org/), ou encore de diffuser lui-même un flux audio en http. Les fonctionnalités de pur lecteur audio de MPD sont classiques, ce qui fait sa spécificité et son intérêt est son architecture client/serveur. De fait, MPD en lui-même n'assure que la partie serveur, c'est-à-dire la lecture de la musique et la construction d'une base de données à partir de votre médiathèque. L'accès à MPD se fait via le réseau et un [protocole dédié](http://www.musicpd.org/doc/protocol/). De nombreuses applications clientes gravitent donc autour du lecteur pour satisfaire à tous les besoins : frontal graphique pour l’environnement de bureau, client pour la console, la ligne de commande, mobile, web, etc. Des bibliothèques de développement sont disponibles dans la plupart des langages populaires, C/C++ bien sûr, mais aussi Java, Perl, Python, Ruby ou Php. Hormis la bibliothèque C/C++ maintenue par le projet MPD, les autres sont issues de la communauté. ## Architecture client/serveur ## Les intérêts de l'architecture client/serveur par rapport au lecteur classique sont multiples ; la pertinence de chacun est bien évidemment fonction des habitudes et modes d'écoute de la musique : * **Démon** : Indépendance vis-à-vis du frontal, du client et même de l'utilisateur. Par exemple le lecteur n'est pas attaché à un serveur X : il peut être piloté par différents utilisateurs en même temps ; * **Multi-client** : il est possible d'écrire des clients qui ne font qu'une chose et le font bien[TM](http://fr.wikipedia.org/wiki/Philosophie_d'Unix), du simple client en ligne de commande (mpc) pour lancer un réveil planifié le matin à l'application graphique (gmpc) permettant d'explorer finement votre médiathèque, ou encore un utilitaire qui enregistre l'activité de vos écoutes dans un fichier, sur votre (μ?)blogue, sur [jabber](http://xmpp.org/extensions/xep-0163.html) ou encore last.fm ; * **Réseau** : Pilotage du lecteur à travers le réseau, sur votre LAN domestique (votre smartphone comme télécommande améliorée) ou à travers l'internet. Ce point est particulièrement intéressant quand on demande à MPD de jouer un flux audio en http plutôt (ou en même temps) que sur la carte son. Cela permet alors d'avoir sa propre radio web et de la piloter à distance ; une alternative aux Last.fm, Deezer et autre nuageux Itune. ## Quelques clients ## Une liste non exhaustive mais relativement bien fournie [est disponible](http://mpd.wikia.com/wiki/Clients). Ci dessous quelques clients remarquables : ###Ligne de commande### **Mpc** est le client en ligne de commande livré avec mpd. Des commandes comme `mpc pause`, `mpc shuffle`, etc., permettent de contrôler la lecture. La commande `mpc update` doit être lancée pour que les nouveaux fichiers musicaux du répertoire de musique soient accessibles aux clients pour la création de listes de lecture. ### Clients graphiques ### * **[gmpc](http://gmpclient.org/)** : un frontal GTK2 très complet avec gestion des pochettes, affichage de diverses meta-informations (Wikipédia, paroles, artistes similaires...). Bien que le _g_ de l'acronyme signifie Gnome ce n'est pas un projet du gestionnaire de bureau ; * **[xfmpc](http://goodies.xfce.org/projects/applications/xfmpc)** : un frontal GTK2 sommaire, mais très léger, pour le bureau Xfce ; * **[sonata](http://sonata.berlios.de/)** : un frontal GTK2 écrit en python. Le projet est mort (la dernière version stable 1.6.2.1 date de septembre 2009) mais différentes branches existent, dont celle de [multani](https://github.com/multani/sonata) qui semble être la plus maintenue, avec un portage en GTK3. Elle gère les pochettes locales ou distantes, la récupération des paroles ou encore le _scrobbling_ ; * **[ncmpc](http://mpd.wikia.com/wiki/Client:Ncmpc)** : un frontal pour la console écrit en ncurse. Minimal mais complet, ce client est idéal pour parcourir sa médiathèque en console. Une alternative offrant plus de fonctionnalités est [ncmpcpp](http://ncmpcpp.rybczak.net/), avec, en particulier, l'édition des méta-données ( _tags_ ) ; * **[Ario](http://ario-player.sourceforge.net)** : un frontal multiplateforme en GTK2 inspiré par Rhythmbox. [Captures d'écran](http://ario-player.sourceforge.net/images/ario-main.png) ; * **[Cantata](http://mpd.wikia.com/wiki/Client:Cantata)** : un frontal très complet écrit en Qt4 ; * **[gkrellmpc](http://mpd.wikia.com/wiki/Client:GKrellMPC)** : un greffon de GKrellm pour contrôler la liste de lecture ; * **[mpdule](http://www.enlightenment.org/)** : un module Enlightenment pour afficher le titre de la chanson et contrôler la lecture. ### Clients utilitaires ### * **[mpdris](https://github.com/eonpatapon/mpDris2)** : client apportant la prise en charge de [MPRIS](http://www.freedesktop.org/wiki/Specifications/mpris-spec) [V2.1](http://specifications.freedesktop.org/mpris-spec/2.1/) ; * **[mpdc](http://nhrx.org/mpdc/)** : un gestionnaire de liste de lectures [présenté sur Linuxfr](https://linuxfr.org/recherche?&q=mpdc) ; * **[MPD_sima](http://codingteam.net/project/sima)** : un démon permettant l'ajout automatique de titres similaire à la lecture courante ; * **[mpdscribble](http://mpd.wikia.com/wiki/Client:Mpdscribble)** : un client de partage de préférences musicales pour Last.fm, Libre.fm ou vers un simple fichier texte. ### Client Web ### * **[fookebox](https://code.google.com/p/fookebox/)** ### Clients Android ### * **[MPDroid](https://play.google.com/store/apps/details?id=com.namelessdev.mpdroid)** : _Fork_ de PMix, il est compatible ICS (4.0) et gère la lecture sur la [sortie HTTP](http://mpd.wikia.com/wiki/Configuration#Built-in_HTTP_streaming) de MPD sur le port par défaut (8000) ; * **[Droid MPD Client](https://play.google.com/store/apps/details?id=com.soreha.droidmpdclient)** : Client plus maintenu depuis 2011, assez bogué. * **[PMix](https://play.google.com/store/apps/details?id=org.pmix.ui)** : Le client historique. Plus maintenu depuis 2010 ; ## Nouveautés ## * **Protocole** : ajout du « [client to client](http://www.musicpd.org/doc/protocol/ch03s11.html) » au protocole permet au client d'ouvrir des canaux de communication entre clients ; Une application possible est l'écriture d'un démon qui partagerait les meta-données aux autres clients — typiquement des images (pochettes d'albums ou autres), les paroles de chansons, etc. Cela permet, via un client unique, de mutualiser des fonctionnalités. * **format** : la gestion des [cue sheet](http://fr.wikipedia.org/wiki/cue_sheet "Définition Wikipédia") ; * **extensions** : des extensions pour les services en ligne Last.fm et Soundcloud ; * **portage** : le travail a débuté sur la branche 0.15, désormais MPD tourne aussi sous Windows ; * **[fonctionnalité de proxy](http://www.musicpd.org/doc/user/ch05.html#idp5543328)** : expérimentale pour le moment, elle permet de partager une base de données entre instances de MPD. Cela permet par exemple d'avoir un MPD _maître_ sur le NAS qui héberge votre musique, de construire la base sur celui-ci et de distribuer cette dernière sur vos instances _clientes_. La base est ainsi construite et mise à jour une seule fois avec un accès disque direct plutôt qu'au travers un partage de fichiers sur le réseau. La version 0.17 est disponible dans [Debian](http://packages.debian.org/mpd), [Archlinux](https://www.archlinux.org/packages/extra/x86_64/mpd/) et bien d'autres distributions, mais aussi sur [Windows](http://www.musicpd.org/download/win32/) ou sur OSX (via [Macports](http://trac.macports.org/browser/trunk/dports/audio/mpd/Portfile) ou [Homebrew](https://github.com/mxcl/homebrew/blob/master/Library/Formula/mpd.rb)).