L’excellent mpd est un logiciel permettant de jouer de la musique à l’aide de son ordinateur. En particulier, il adopte une architecture client/serveur permettant de varier les usages. Son installation sur Debian n’est vraiment pas des plus faciles. Je décris mon périple.
Objectif
Je voulais pouvoir faire du streaming à partir de mon serveur Debian. Le serveur mpd devait pouvoir être piloté à partir de mon téléphone fonctionnant sous Android. L’Android market comprend cinq clients. Deux ne fonctionnent pas du tout, Pmix et ThreeMPD. BitMPC et Droid MPD Client fonctionnent très bien mais ne permettent pas de lire le flux. Ce ne sont que des télécommandes. Reste alors MPDroid. Mais ce n’est pas une sinécure.
Galère
En bon petit utilisateur averti je lance tout simplement apt-get update && apt-get install mpd ncmpc. Je suis encore tout naïf et confiant, je me dis que tout va bien. Je configure /etc/mpd.conf, je lance une chanson sympa, la musique jaillit des enceintes.
Je passe au téléphone. Le lecteur natif d’Android ne lit pas le flux. J’installe MPDroid. Il m’indique au premier lancement que la lecture des fichiers ogg n’est disponible qu’à partir de Froyo. Cela tombe bien, j’utilise Gingerbread, CyanogenMod 7 pour être précis. La musique est là mais le lecteur est très instable. À chaque changement de chanson, MPDroid remplit à nouveau le cache et débute la lecture en plein milieu de la chanson. Pas génial.
Recherche
Puisque la lecture fonctionne bien avec la sortie alsa, j’ai orienté mes recherches vers MPDroid. En testant avec d’autres flux je me rends compte que seuls les flux au format MP3 fonctionnent correctement. Même si je préfère largement la méthode d’OGG pour séléctionner la qualité du flux, je vais devoir m’orienter vers le format propriétaire.
L’attaque des barbus
Pas de problème. Je change la variable encoder de /etc/mpd.conf pour lame. Je relance le serveur. L’encodeur n’est pas reconnu.
Hein?! Pas reconnu?! 99,99999% des ordinateurs encodant de la musique utilisent lame. J’ai l’impression d’avoir loupé quelque chose… Je réinstalle les paquets, j’inspecte les paquets installés. Je comprends bien vite que le support de lame n’est pas compilé dans le binaire de Debian. Il semble que lame soit sous le coup de brevets logiciels. Le célèbre encodeur n’est pas compatible avec le contrat social de Debian.
Bien décidé à écouter de la musique avec mon téléphone, je m’arme de mon gcc et décide de compiler lame et mpd. La procédure est assez habituelle : ./configure –enable-oggvorbis –enable-lame –enable-mpg123 –disable-alsa –disable-oss && make && make install. On relance mpd et en avant la musique!
Moralité
Je me mords encore les doigts de ne pas avoir choisi une distribution source pour mon serveur. On aime rarement administrer son serveur. Configurer sa machine principale aux petits oignons est un sport de geek. Faire de même avec son serveur, c’est moins drôle. Je m’étais dit qu’avec Debian, je n’aurais pas à mettre les mains dans le cambouis. Je pensais utiliser les configurations standards pour ne pas avoir de problème. Je me suis trompé. Les distributions binaires sont obligées de faire des choix cruciaux à la place des utilisateurs. Il arrive forcément un jour où cela ne correspond pas aux attentes. En particulier, le contrat social de Debian se révèle parfois trop strict. C’est une réelle protection pour l’utilisateur. Il est assuré d’avoir une distribution libre jusqu’au bout des ongles. C’est à double tranchant.
De même, je déteste lorsque je découvre dans les abymes d’une mailing list qu’une fonctionnalité a été désactivée parce que «Non, c’est pas bien, il ne faut pas faire cela». Les développeurs ont souvent de très bonnes raisons de faire ces choix. L’ennui, c’est que l’utilisateur le découvre souvent après une mise à jour et doit corriger le problème alors qu’il n’en a pas forcément le temps.
Gentoo me permet de faire tout les choix de compilation, il me prévient de tout les changements pouvant affecter mon système de manière claire et efficace. Je n’ai encore jamais vu cela ailleurs. Gentoo, c’est bien.
Addendum du 18/02/2012
Les problèmes dont je faisais état dans l’article sont maintenant réglés. Ouf, on va enfin pouvoir déguster de nouveaux bugs plus originaux. Eh oui, mon mpd ne décode plus le OGG Vorbis désormais. SAYNUL!!!