Configurer MPD et créer une grande liste de lecture modulaire

MPD (Music player damon) est un serveur de lecture de fichiers audio utilisant une base de données ce qui permet une recherche très rapide surtout avec une grande collection.
Je vais expliquer ici comment je m'y prend pour configurer MPD pour faire des playlists facilement modifiables.

Pour commencer, toute ma musique est classée par ordre alphabétique et toutes les musiques sont correctement taggées grâce à Easytag.
Exemple de classement d'un album de Lonah (musique libre) :

$ mpc listall | grep "Lonah/2007"
L/Lonah/2007 - Au fond du temps (estrella sin cara)/01 - Aurore.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/02 - Mornings.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/03 - Fly me.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/04 - Une nuit.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/05 - Mascha.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/06 - Errance.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/07 - With my mind.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/08 - Onirisphère.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/09 - Neige.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/10 - Urban tale.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/11 - Nuestros huesos.mp3
L/Lonah/2007 - Au fond du temps (estrella sin cara)/12 - Les droïdes aussi font la fête.mp3

Tout d'abord, installer mpd et mpc sur votre distribution favorite. Je ne détaille pas cette partie.
MPC est le logiciel qui permet de manipuler MPD en ligne de commande, donc indispensable.

Maintenant, place à la configuration...

Configuration de /etc/mpd.conf

Ouvrez /etc/mpd.conf ou ~/.mpdconf avec votre éditeur préféré...

music_directory "/srv/data/music"

Indiquez ici le répertoire de votre dossier de musique avec son chemin absolu.

playlist_directory "/srv/data/playlists"

Indiquer ici le répertoire dans lequel se trouvera vos playlists.

db_file "/local/var/mpd.db"

Indiquer ici où se trouve le fichier de base de données générée par mpd.

user "mpd"

Indiquer ici le nom de l'utilisateur qui exécutera le démon mpd. Vous pouvez le commenter si vous lancez mpd directement par votre utilisateur sans passer par le script de démarrage.

volume_normalization       "yes"

Utilisez cette option si vous voulez que le volume soit identique pour toutes les chansons.

filesystem_charset      "UTF-8"

Spécifiez votre encodage de caractère.

La configuration est maintenant faite, passons à la création des playlists.

Création des listes de lecture

Pour commencer, vous devez impérativement créer le fichier de base de données. Si vous utilisez le fichier /etc/mpd.conf et le script de démarrage (/etc/rc.d/mpd ou /etc/init.d/mpd selon votre distribution), la création se fera ainsi :

/etc/rc.d/mpd create-db

Si vous utilisez ~/.mpdconf il vous suffit de lancer :

mpd --create-db

Une modification de votre collection (changement de tags, renommage, ajout/suppression de musique), oblige la reconstruction de la base de données, ce qui peut être long et donc un peu chiant, mais le résultat vaut le coup.

Notre base de données est prête, nous pouvons faire nos playlists.
Personnellement, j'utilise exclusivement "mpc listall" (qui liste toute la base) avec "grep" pour filtrer mes recherches et je redirige vers un fichier comme ceci :

mpc listall | grep Lonah > /srv/data/playlists/lonah.m3u

Cette commande trouve tout ce qui contient "Lonah" dans la base et redirige le résultat dans le fichier "/srv/data/playlists/lonah.m3u". L'extension "m3u" est indispensable.

Je vous conseille de créer une playlist par artiste ou pas genre (à vous de choisir) afin d'avoir pleins de playlists assez courtes au lieu d'avoir une seule playlist car la modification d'une très grande playlist est assez pénible, d'où la création d'une grande liste de lecture modulaire.

Maintenant que vous avez créer vos playlists par artiste, il faut les charger.

Gestion des listes de lecture

Toutes nos playlists sont dans "/srv/data/playlists/", il ne reste plus qu'à charger celle que l'on souhaite écouter.
Comme il est pénible de charger les nombreuses playlists une par une, je suggère de crée un fichier contenant le nom des playlists dans "/etc/mpd.playlists" par exemple afin de l'utiliser dans un script. Il suffit de taper "mpc lsplaylists" pour afficher toutes les playlists disponibles et d'inscrire celles désirées dans ce fichier ligne par ligne. Maintenant, pour lancer ces playlists rapidement, il faut faire un tout petit script nommé "mpc_reload" par exemple pour toutes les lancer d'un coup :

mpc_reload :

#!/bin/sh

# On vide la playlist en cours
mpc clear;
# On ajoute les playlists automatiquement depuis le fichier mpd.playlists dans l'ordre spécifié.
for i in `cat /etc/mpd.playlists`
do
    mpc load $i;
done

Un coup de :

chmod +x mpc_reload

Et on peut l'exécuter.

Un coup de "mpc --help" vous permettra de savoir comment utiliser mpc.

Les clients pour MPD

Il existe plusieurs clients permettant de consulter les playlists, de mettre la musique en pause, de passer en lecture aléatoire :

  • NCMPCPP : client en mode-texte ncurses
  • GMPC : client GTK
  • Et pleins d'autres...

Personnellement, j'utilise Conky qui se contente d'afficher les informations nécessaires sur le bureau ou en fenêtre et j'ai configuré des touches raccourcis dans mon gestionnaire de fenêtres Pekwm. De cette manière, je peux passer d'une chanson à une autre, etc, depuis n'importe où, je n'ai pas besoin d'être dans un logiciel comme ceux cités ci-dessus pour faire ces actions.

Conclusion

Maintenant vous savez :

  1. configurer MPD avec /etc/mpd.conf
  2. générer la base de données avec "mpd --create-db"
  3. créer des playlists avec "mpc listall | grep [artiste] > artiste.m3u"
  4. faire une grande playlist à partir de plusieurs playlists créés par artiste ou par genre à l'aide du script "mpc_reload"

Amusez-vous bien :)

Vus : 2893
Publié par Thomas Bourdon : 17