Music Player Daemon

Posté par  (site web personnel) . Édité par Jiehong, ianux, SidStyler, Benoît, Sidonie_Tardieu, JGO, patrick_g, olivierweb, xcomcmdr, , L@ur3nt, Nÿco, Benoît Sibaud et barmic. Modéré par Nÿco. Licence CC By‑SA.
Étiquettes :
38
14
juin
2013
Audiovisuel

La mise en place d'un nouveau site web pour le projet MPD est l'occasion de revenir sur ce lecteur audio.

MPD

Sommaire

« 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, 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é. 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, 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 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. 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 : 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 : un frontal GTK2 sommaire, mais très léger, pour le bureau Xfce ;
  • sonata : 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 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 : 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, avec, en particulier, l'édition des méta-données ( tags ) ;
  • Ario : un frontal multiplateforme en GTK2 inspiré par Rhythmbox. Captures d'écran ;
  • Cantata : un frontal très complet écrit en Qt4 ;
  • gkrellmpc : un greffon de GKrellm pour contrôler la liste de lecture ;
  • mpdule : un module Enlightenment pour afficher le titre de la chanson et contrôler la lecture.

Clients utilitaires

  • mpdris : client apportant la prise en charge de MPRIS V2.1 ;
  • mpdc : un gestionnaire de liste de lectures présenté sur Linuxfr ;
  • MPD_sima : un démon permettant l'ajout automatique de titres similaire à la lecture courante ;
  • mpdscribble : un client de partage de préférences musicales pour Last.fm, Libre.fm ou vers un simple fichier texte.

Client Web

Clients Android

  • MPDroid : Fork de PMix, il est compatible ICS (4.0) et gère la lecture sur la sortie HTTP de MPD sur le port par défaut (8000) ;
  • Droid MPD Client : Client plus maintenu depuis 2011, assez bogué.
  • PMix : Le client historique. Plus maintenu depuis 2010 ;

Nouveautés

  • Protocole : ajout du « client to client » 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 ;
  • 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 : 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, Archlinux et bien d'autres distributions, mais aussi sur Windows ou sur OSX (via Macports ou Homebrew).

Aller plus loin

  • # support http ?

    Posté par  (site web personnel) . Évalué à 2.

    y a t'il moyen d ajouter un support http via un proxy ou autre ?

    je recherche un outil du genre qui passe par dessus http … et moins lourd qu'ampache

    http://rzr.online.fr/q/jukebox

    gpg:0x467094BC

  • # Ersatz nécessaires : Mopidy & Gnump3D

    Posté par  . Évalué à 2. Dernière modification le 15 juin 2013 à 00:02.

    Mopidy est - pour moi - la "nouvelle génération" de MPD, c'est finalement une sorte de fork non finalisé qui supporte Spotify & SoundCloud en plus des fonctionnalités habituelles : https://github.com/mopidy/mopidy ; attention, version alpha.

    Pour ma part, ayant trouvé trop lourds MPD & Mopidy, j'ai donc installé Gnump3D (https://github.com/eherot/gnump3d) qui n'est qu'un générateur de playlists .m3u (aléatoire ou non) sur des fichiers MP3/Vorbis dans un explorateur de fichiers Web. Il s'ajoute parfaitement sur ArchLinux à VLC, le visualiseur ProjectM et le thème sexy VLT DeepDark : http://addons.videolan.org/content/show.php/VLT+DeepDark?content=154884

  • # Vimus

    Posté par  (site web personnel) . Évalué à 2.

    On peut ajouter Vimus dans la liste des clients :
    https://github.com/sol/vimus

    Une interface de type VIM, le tout écrit en Haskell. Bref le top :)

  • # Incontournable

    Posté par  . Évalué à 4.

    J'en ai une utilisation basique mais c'est vraiment très puissant.

    MPD sur mon home pc branché sur mon ampli

    Une playlist de radios web sans (trop de) pubs et celles de mes propres mp3.

    ncmpcpp pour le piloter depuis linux

    MPD droid sur mon smartphone et ma tablette qui fonctionne très bien et qui coupe la musique lors de la réception ou l'émission d'un appel puis qui remet le son une fois l'appel terminé : parfait et évite de manquer un appel en cas d'écoute un peu forte…

    Il me manque juste un petit plasmoid kde efficace, ceux que j'ai testé jusque là ne m'ont pas donné satisfaction (plantage, pas maintenu etc)

  • # GMPC

    Posté par  (site web personnel) . Évalué à 1.

    GMPC est aussi passé à GTK+3 dans la version de développement.
    Il dispose également d’un mode très pratique nommé AutoMPD qui configure (sommairement) et lance automatiquement MPD, agissant ainsi comme un lecteur audio « classique ».

  • # Lire les .xspf

    Posté par  . Évalué à 0. Dernière modification le 15 juin 2013 à 18:21.

  • # Client web il y a ...

    Posté par  . Évalué à 0.

  • # MPD chez Wam

    Posté par  . Évalué à 5.

    Salut !

    J'aime MPD. Je l'ai installé sur mon rasberry pi chez moi, dans mon salon.
    N'importe quelle personne ayant un client peut changer la zik et faire ses playlist.

    Du coup, je l'ai couplé à un serveur samba et comme ça, n'importe qui peut ajouter / prendre la musique et ainsi contribuer à remplir mon DD d'un téra connecté au Rpi.

    Voilà, c'est tout ce que j'avais à dire à propos de ça.

  • # MPD sur matériel embarqué avec Voyage Linux

    Posté par  . Évalué à 4.

    J'utilise depuis quelques temps un seveur MPD sur une carte Alix + disque dur, avec la distribution spécialisée Voyage MPD :
    http://linux.voyage.hk/voyage-mpd
    Spécialisée pour la gestion de la musique avec MPD, cela fonctionne plutôt bien ! Cela permet d'avoir un mini-PC totalement silencieux couplé à une chaîne hifi :-)
    Le seul manque lié à mon matériel, c'est l'absence de retour visuel (pas d'écran) en direct… Avec un smartphone et MPDroid, ou un ordi avec sonata, c'est top !

  • # Firefox OS Client : FoxyMPD

    Posté par  . Évalué à 5.

    Et pour être dans le vent, j’ai commencé à écrire un client pour Firefox OS, j’ai nommé foxympd.

    https://hgrepos.sacristi.fr/barosofts/foxympd

    Encore à l’état embryonnaire, mais on peut déjà :

    • Se connecter ;)
    • Créer une liste de lecture
    • Chanson précédente/suivante

    Plus pleins de petits bugs présents. (les devs débutent à peine).

    La licence sera de la GPLv3, il faut que je mette à jour les headers.

    PS: MPD c’est vraiment top moumoutte.

  • # UPnP AV - DLNA

    Posté par  . Évalué à 3.

    je suis utilisateur de mediathomb (upnpav) et j'ai du mal à voir comment s'articule tout ça et si MPD est complémentaire ou au contraire concurrent.
    si c'est concurrent, pourquoi ne pas avoir utilisé des protocoles standard ?

    • [^] # Re: UPnP AV - DLNA

      Posté par  . Évalué à 3.

      je m'auto réponds partiellement.
      si on transpose en upnpav, MPD remplis le role de "madiaserver" et de "mediarenderer" et les clients remplissent le rôle de controlpoint mais sur un protocole adhoc non standard.
      j'ai bon ?
      peut on imaginer une convergence vers upnpav ?

  • # Petit besoin ponctuel

    Posté par  . Évalué à 2.

    Sympa de tomber sur cette dépêche alors que justement je me remets à MPD après des années d'absence. Je découvre du même coups les clients Android qui ne sont pas trop mal. Mais à chaque fois il me manque un truc : quelqu'un aurait un pointeur vers un client mobile qui peut passer d'une playlist enregistrée à une autre?

  • # Client WEB

    Posté par  . Évalué à 1.

    Pour ceux à la recherche d'un client Web, Client175 est excellent!

    http://code.google.com/p/client175/

    Nécessite Python sur la plateforme hôte.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.