MPD, un lecteur audio pas comme les autres..

Posté par  . Modéré par Jaimé Ragnagna.
Étiquettes :
0
2
oct.
2006
Son
La sortie de la version 0.12 de MPD est passée inaperçue la semaine dernière, mais une petite présentation de ce lecteur audio parfois méconnu s'impose...

C'est un lecteur audio fonctionnant comme un démon système, sans interface graphique. Il se contrôle via le réseau en utilisant un client séparé. On peut noter que xmms2 reprend le même principe client-serveur.

Il permet de lire les formats les plus courants (MP3, Ogg Vorbis, FLAC, AAC, Mod, WAV, streams MP3 et OGG), et gère l'ensemble des morceaux de musique ainsi que les listes de lecture dans une base de données au format texte. La dernière version en date, la 0.11.5 datait de Novembre 2004, c'est dire si le développement de MPD poursuit doucement son bonhomme de chemin.. et qu'il ne reste plus beaucoup de fonctionnalités à ajouter. Il satisfait déjà pleinement un grand nombre d'utilisateurs désirant construire un jukebox de salon à peu de frais (surtout en le couplant à une télécommande infrarouge et lirc.), mais peut très bien servir de lecteur audio léger sur un vieil ordinateur.

Cette nouvelle version 0.12, dont le code à été en grande partie réécrit, est d'ores est déjà disponible dans debian unstable et ubuntu edgy.

Le protocole de communication de MPD étant en texte brut, un certain nombres de bibliothèques d'interfaçage ont été créées :
Toutes ces bibliothèques ont donné la naissance à un grand nombre de clients, les plus utilisés sont :
  • telnet/netcat : en effet, le protocole de MPD étant en texte brut, on peut envoyer directement des commandes au serveur sur le port 6600 (par défaut).
  • mpc : le client en ligne de commande par défaut
  • ncmpc : une interface ncurses simple et jolie (encore plus avec les couleurs, ncmpc -c)
  • gmpc, un client C-Gtk2 proposant un système de plugins (récupérations de jaquettes sur internet...)
  • pympd, un client simple en Python-Gtk2
  • kmp, un client C++-QT

La plupart de ces clients proposent les fonctions de base d'un lecteur audio :
  • recherche sur critères d'un morceau dans la base de données
  • gestion des tags ID3 et autres
  • sauvegarde/chargement de listes de lecture
  • crossfading/répétition/lecture aléatoire
  • mise à jour rapide de la base de donnée lors de l'ajout de morceaux dans la bibliothéque

Enfin, il faut noter que MPD supporte un grand nombre de périphériques de sortie (OSS, Alsa, Sun, esd, arts, SHOUT via icecast ou shoutcast), et fonctionne autant sous les distributions Linux que sur les variantes de *BSD, ainsi que sous Solaris et HPUX.

MPD constitue une réelle alternative aux lecteurs audio tout-en-un intégrés à un environnement de bureau comme rhythmbox et amarok.

Aller plus loin

  • # légèreté de l'être

    Posté par  . Évalué à 7.

    surtout, mpd est achement plus léger qu'un amarok ou un rythmbox, plud stable qu'un xmms bmp. Il ne crashe pas quand on teste ses nouveaux drivers Xorg proprio ou libre. Il n'a pas besoin d'un backend mysql un poil lourd ou sqlite qui foire sur du nfs pour de la simple indexation de fichiers.

    Mais il ne fait pas encore le café. J'attends donc la version 0.13 avec impatience. Longue vie à mpd et à l'astuce linuxfr qui me l'a fait découvrir.
    • [^] # Re: légèreté de l'être

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

      Toutafé, et il a même le bon goût de continuer à faire du bruit quand on n'est plus sous X. Et puis il est totalement dans l'esprit unix, faire une seule tâche mais bien la faire.
      • [^] # Re: légèreté de l'être

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

        C'est même pour cela que je l'ai choisi, car dans les rares cas où mon serveur X se plante, je peux travailler a le relancer en musique :).

        Le jour où Rythmbox le permettra, je switcherais peut être car j'aime bien les interface ergonomiques à la Gnome quand même. Mais en même temps, j'ai personnalisé mpc/mpd pour ajouter une fonctionnalité que je voulais.
        C'est bien le logiciel libre quand même
    • [^] # Re: légèreté de l'être

      Posté par  . Évalué à 5.

      surtout, mpd est achement plus léger qu'un amarok ou un rythmbox, plud stable qu'un xmms bmp.

      Pour completer le troll, je dirais que l'ennorme avantage de mpd sur tout ces concurrents c'est qu'il fait du OGG en gapless (ie sans rupture de son en passant d'une chanson à l'autre). Cette fonctionnalité essentielle à mes oreilles semble être considérée aujourd'hui comme totalement secondaire voire superflue par la grosse majorité des back-ends audio disponibles sous Linux.

      Donc si le Gapless vous manque depuis que votre lecteur audio favori a décidé de passer sous GStreamer essayez mpd.
  • # Version 0.12

    Posté par  (site web personnel, Mastodon) . Évalué à 8.

    Si il n'y a pas eu de nouvelle version pendant tout ce temps c'est simplement que personne n'avait la motivation de faire une release, mais la version SVN était relativement stable et tout le monde l'utilisait d'ailleurs.

    MPD sais aussi gérer Pulse audio je crois, au niveau des drivers de sortie. Enfin, la sortie icecast est géniale, ça permet de transformer son MPD en radio, et ça permet ainsi avec un client via ssh ou simplement en ouvrant le bon port, d'écouter sa musique à distance :)

    MPD est génial, vous ne trouverez pas mieux. Et je vous conseille fortement ncmpc comme client texte :)

    « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

    • [^] # Re: Version 0.12

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

      Alors là je plussoie pour ncmpc. C'est un client en ncurses très pratique à utiliser, tout se fait au clavier, et avec l'autocomplétion c'est super efficace pour gérer sa liste de lecture dès qu'on a pris l'habitude des raccourcis claviers.

      Le gros avantage de mpd est d'être un démon. Du coup on peut fermer et rouvrir son client à volonté ou cracher son X sans interrompre la musique. L'autre truc rigolo, c'est que si on n'arrête pas la lecture lorsqu'on éteint la machine, mpd reprend automatiquement là où il s'était arrêté au démarrage suivant.

      Enfin, pour ce qui utilisent les services de last.fm, il existe un client spécifique pour mpd qui fonctionne bien et qui se nomme mpdscribble :

      http://www.frob.nl/scribble.html

      J'avais également fait un petit billet de présentation là :

      http://blog.nozav.org/?2005/12/13/38-mpd-music-player-daemon
      • [^] # Re: Version 0.12

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

        À propos de ncmpc, il a quand même un gros bug : le developpeur ne répond pas : les rapports de bug s'accumulent, et rien... En particulier, il utilise des fonctions imbriquées, ce qui pose problème pour le compiler sous osx et semble-t-il aussi sous gentoo. Mais franchement, mpc est très bien, et il contient un script pour éditer une playlist au vol (mppledit) que je n'ai malheureusement pas encore pu essayer.

        Et comme client graphique, j'aime bien pygmy : simple, sobre.

        Pour last.fm, je préfère lastmp + lastfmsubmitd : astfmsubmitd est un démon qui sait causer à last.fm, et lastmp est le client qui regarde ce que joue mpd et l'envoie au daemon. En fait je le préfère parce que j'avais rencontré un problème avec scribble : il n'arrivait pas à se connecter (j'avais attribué ça au _ de mon login, mais je n'avais pas cherché plus loin).
      • [^] # Re: Version 0.12

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

        Pour la reprise après un redémarrage, ce doit être une fonction récente car ma version provenant d'un snapshot svn récent ne le permet pas.
        Ou alors c'est que je ne tue pas mpd comme il faut.
    • [^] # Re: Version 0.12

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

      c'est vraiment une bonne nouvelle ...
      Je suis également un big fan de mpd ... mais je n'utilisais pas la version svn ...

      J'attendais cette future version pour la sortie icecast ... car pour l'instant je balançait sur icecast l'audio complete du pc ... pour une utilisation distante via des client comme phpmp2 ... Maitenant, je vais pouvoir ne rediriger que l'audio de mpd !

      Le top de mpd : c'est ses nombreuses libs ... et donc, il est vraiment très très simple de faire un "client mpd" ...
      Chez moi, il est réglé à tous les niveaux .. des touches multimedias du clavier en passant par la telecommande, et dans une interface web et une gtk de mon cru ...
      ça permet d'avoir LE player qu'on veut ... donc logiquement SON player idéal, et simplement ...

      Une chose incroyable aussi est le peu de ressources utilisé (3 process de 15mo, je crois)... même avec les effets compiz à fond, et des jeux 3D en même temps ... il ne bronche pas ... là ou amarok, listen et autres exaile deviennent inutilisable ...

      Et quel plaisir que de mettre de la zic en console quand son Xorg refuse de booter ;-) (ubu powaaa ;-) )

      Mon rêve, et je m'y collerai certainement, c'est une interface(*) à la exaile branché sur mpd ... j'ai déjà un peu maté le code, et ça devrait être "pas trop complexe" d'ajouter un backend mpd dans exaile

      (*): j'ai deja vu le clone en python de rhythmbox, pour mpd : mais c'est inutilisable avec une grosse bibliotheque
      • [^] # Re: Version 0.12

        Posté par  . Évalué à 4.


        Mon rêve, et je m'y collerai certainement, c'est une interface(*) à la exaile branché sur mpd ... j'ai déjà un peu maté le code, et ça devrait être "pas trop complexe" d'ajouter un backend mpd dans exaile


        Mon rêve serait que Amarok puisse utiliser mpd. Mais je suis totalement incapable de voir si c'est codable...

        ­La faculté de citer est un substitut commode à l'intelligence -- Somerset Maugham

        • [^] # Re: Version 0.12

          Posté par  . Évalué à 2.

          Je suis assez d'accord.
          Depuis que j'utilise AmaroK je peux plus m'en passer... Pourtant utiliser MPD, ca me plairait bien, pour certaines utilisations...

          Me faudrait une interface du même genre qu'AmaroK pour mdp... mais je sais pas assez bien coder :p
  • # Avantage : plusieurs sessions simultanées

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

    J'apprend par le biais de la news que XMMS 2 offre à présent la même fonctionalité.

    Pour ma part, j'avais choisi MPD il y a deux ans pour les raisons suivantes :
    - possibilité pour les utilisateurs d'une même machine de partager une liste de lecture commune (ma copine galérait à trouver la ligne de commande pour arrêter la musique lancée dans ma session pour lancer la sienne)
    - fonctionalités suffisantes (commandes de lecture, liste de lecture, sortie ALSA, ...)
    - simplicité des interfaces
  • # Un petit commentaire

    Posté par  . Évalué à 7.

    J'avais récement fait un commentaire sur mpd dans un journal, je pense assez complet pour le faire découvrir parce que je l'aime beaucoup.
    Je met donc le lien ici :

    http://linuxfr.org/comments/748739.html#748739
  • # En parlant de lecteur audio...

    Posté par  . Évalué à 3.

    ...je suis tombé tout récemment sur songbird qui m'a l'air séduisant mais je n'en ai jamais vraiment entendu parler : certains auraient-ils un avis à émettre dessus ?

    Par ailleurs, un lien entre un iPod et MPD est-il envisageable ?
  • # MPDCon & WMmp

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

    Il existe aussi un client GNUstep
    http://www.stud.uni-hannover.de/user/64568/MPDCon/MPDCon.htm(...)

    et une dock app pour ceux qui utilisent Window maker
    http://www.musicpd.org/images/WMmp_20030708_1.jpg
  • # +1 pour MPD

    Posté par  . Évalué à 2.

    J'utilise MPD en à distance avec icecast, et phpmp3 (Ajax !!!) pour récupérer le flux au boulot. C'est très pratique.

    Je l'utilise aussi comme lecteur en local chez moi comme n'importe quel lecteur. Ce que je n'ai pas trouvé dans les différents client que j'ai essayé, c'est de pouvoir selectionner le morceau à écouter directement depuis l'arboressence. Le fonctionnement de MPD oblige à passer par une playlist...
    Ce que je cherche c'est :
    - je doubleclique sur une chanson dans l'arboressence, hop, je l'écoute directement.
    - je doubleclique sur un repertoire dans l'arboressence, hop, je l'écoute directement (enfin les chansons du repertoire ;-)
    Cette fonctionnalité pourrait être 'bidouillée' sur un client mais je n'en ai pas trouvé. Si quelqu'un connait un client X qui sait faire ce genre de chose, je suis preneur.
    • [^] # Re: +1 pour MPD

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

      Dans ncmpc, appuyer sur Entrée sur un morceau dans la librairie ajoute le morceau à la playlist et le lis immédiatement.

      Donc ncmpc le fait, en interface graphique je sais pas mais ça doit pas être compliqué à faire.

      « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

  • # Et MOC ?

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

    Personnellement j'utilise MOC, qui a comme MPD le gros avantage de fonctionner en mode client-serveur (mais pas en réseau, que je sache) donc pas de crash de la musique quand on quitte X.
    J'avais fait une petite présentation ici : http://mouchevii.free.fr/wiki/index.php?title=MOC

    Ceci dit je ne connaissais pas MPD et cette dépêche m'a fort alléché, je vais donc avoir le plaisir (j'espère) de l'essayer ce soir en rentrant. :-)
    • [^] # Re: Et MOC ?

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

      Alors voilà, j'ai testé ça hier soir, avec ncmpc comme interface.
      Je la trouve moins fonctionnelle que celle de MOC. Le fait qu'il faille obligatoirement passer par une liste de lecture est assez désagréable, je trouve. Bien que ce soit une fonctionnalité indispensable, j'aime également pouvoir lire directement depuis un dossier.

      A part ça je n'ai pas réussi à faire tourner mpd comme démon système. Il se lance, mais ncmpc ne voit pas les fichiers dans l'onglet de navigation : ça affiche tout en haut « Parcourir : . » (ou quelque chose comme ça), et la liste des dossiers n'apparaît pas.

      Par contre en le lançant à la main depuis mon compte utilisateur (mpd /home/moi/musique etc.) ça marche bien.

      J'ai un peu cherché, surtout au niveau des permissions, mais même si le répertoire des musiques appartient à l'utilisateur mpd ça ne marche pas.
      Une idée quelqu'un ?
      • [^] # Re: Et MOC ?

        Posté par  (site web personnel, Mastodon) . Évalué à 3.

        Il faut mettre à jour la base de données de morceaux pour qu'il les reconnaisse (U dans ncmpc, commande update de mpd). Je sais pas si tu l'as fait...

        Il est clair que MPD n'est pas fait pour une utilisation "live" ou tu te base directement sur les fichiers, c'est juste une grande bibliothèque musicale. Pour moi xmms et mpd sont complémentaires.

        « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

        • [^] # Re: Et MOC ?

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

          Il faut mettre à jour la base de données de morceaux pour qu'il les reconnaisse (U dans ncmpc, commande update de mpd). Je sais pas si tu l'as fait...

          Non je ne l'avais pas fait, mais quand j'ai lancé le démon à la main depuis mon compte il l'avait fait tout seul. A moins que ce ne soit au lancement de ncmpc ?

          Bref, j'essayerai ce soir, on verra.

          Il est clair que MPD n'est pas fait pour une utilisation "live" ou tu te base directement sur les fichiers, c'est juste une grande bibliothèque musicale.

          Il y a sans doute moyen de changer ça. L'idéal pour moi serait d'interfacer MOC avec MPD.
          Je vais le noter dans ma liste de choses à faire avant de mourir. :-)
          • [^] # Re: Et MOC ?

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

            Bon effectivement c'était bien qu'il fallait mettre à jour la BdD.
            /me se flagelle avec sa souris.

            Après un nouveau test, tout ça est effectivement très bien, mais le gros point noir est l'interface de ncmpc : pas d'affichage de la durée des chansons ; pas moyen d'enlever la lecture des tags des fichiers (des fois les tags sont illisibles donc c'est mieux de voir les noms des fichiers, par exemple pour la musique japonaise. Non, je n'écoute pas de J-Pop ^_^ ) ; la barre de progression est moche, etc., etc.

            Je sais qu'il y en a d'autres, mais je tiens au client en console d'une part, et je n'ai pas envie de taper des commandes pour mettre ma musique en pause (et encore moins pour gérer la liste de lecture). Il y a d'autres clients en (n)curses ou assimilés ?

            Dans tous les cas, merci de m'avoir fait découvrir mpd !
  • # MPD sur NAS Linksys

    Posté par  . Évalué à 3.

    Salut
    Le truc embêtant, c'est d'avoir le PC allumé.
    Me suis alors acheté le NAS de Linksys reflashé avec une Debian et j'y ai installé MPD.
    Je peux controler MPD de différentes manières :
    - Sur mon PC : avec phpmp
    - Sur l'interface Freeplayer de la freebox
    - A partir de la télécommande via Lirc

    J'aimerai bien y ajouter un écran LCD, mais j'ai pas trop le temps en ce moment...
    • [^] # Re: MPD sur NAS Linksys

      Posté par  . Évalué à 2.

      Alors ça c'est un commentaire précieux.

      Je me posais la question d'une installation de ce type et me demandais bien comment faire...

      Merci !
  • # "Pause mode" patch

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

    J'ai fait un patch pour recréer le comportement qu'on peut trouver sur certains lecteurs CD "de salon", appelé chez moi "Auto cue". Il sagit de mettre le lecteur en pause après chaque piste jouée.
    On peut l'utiliser lorsqu'on décide d'arrêter la musique mais qu'on veut attendre la fin de la chanson avant de le faire. On peut aussi l'utiliser si on aime le silence mais aussi la musique et qu'on a envie de composer entre les deux.

    Un patch existe pour mpd et un autre pour mpc en ligne de commande.

    J'ai proposé le patch aux devs mais ils ne semblent pas intéressés car je suis la seule personne a demander cette fonctionnalité. En attendant, je l'utilise :)

    Jene garantis pas qu'ils soient compatibles avec la version actuelle mais je les ai réactualisés dernièrement, et comme cette partie du code ne change pas beaucoup, ils doivent encore être valides.

    Les patches :
    http://bzr.mildred632.free.fr/viewsource/Projects/Finnished/(...)
    • [^] # Re: "Pause mode" patch

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      Le patch m'intéresse aussi, et j'aimerais bien voir cette fonctionnalité implémentée...

      J'appuie la demande auprès des dévs, j'espère que ça va passer :)

      « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

    • [^] # Re: "Pause mode" patch

      Posté par  . Évalué à 3.

      D'ailleurs j'avais fait un patch pour VLC qui ajoute un bouton sur la playlist de l'interface wxWidgets pour le faire. Seulement il a été refusé, donc il faut que je le maintienne dans mon coin quand j'ai besoin de m'en servir et me faire mes builds.

      Sinon, c'est très très utile pour les spectacles/sketchs : on lance une musique et on a pas la musique de la scène d'après qui se joue.

Suivre le flux des commentaires

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