26/05/2010

MPD, MPC, Intel et openSUSE...

Sacré quartet évoqué dans le titre. Petits rappels. Pour les deux premiers, au moins. MPD, pour Music Player Daemon, est comme son nom l'indique une programme tournant en tâche de fond, qui permet d'émettre de la musique vers une sortie choisie. On peut même l'utiliser comme base pour faire de la diffusion par le réseau. Non, ne partez pas, c'est pas le but, ici.
Pour contrôler MPD, on peut utiliser un logiciel adéquat. certains sont graphiques, pas celui que j'utilise. L'objectif estt de libérer de la mémoire, afin d'être vraiment à l'aise en utilisant Eclipse, OpenOffice, Firefox, ArgoUML, Kate, tous avec pleins de trucs d'ouverts... Donc j'économise sur le lecteur audio. Même au niveau de l'interface. Mpc est donc fait pour moi :-).

Je vais d'abord vous montrer comment j'ai fait marcher le machin, chez moi, sur une carte son Intel. J'ai du tatonné un peu, ça m'arrivera pas deux fois ;-) . Et vous l'aurez compris, je vais présenter les manip's sur une openSUSE, avec des opérations tout à fait typiques de cette magnifique (et VERDOYANTE) distribution GNU/Linux. Pour les autres, vous pourrez aussi trouver quelques petites choses utiles à la fin. Peut être.

La partie facile : l'installation des deux logiciels. Un simple

zypper in mpc mpd

et le tour est joué, zypper est incroyable.

Pour la suite... MPD s'appuie sur une base de données où il garde les infos sur votr base de données. Il va donc falloir qu'il soit capable de trouver le fichier où est la base, et d'écrire dedans. D'ailleurs ce sera pas le seul fichier utile.

Créez un répertoire .mpd dans votre dossier personnel, et ajoutez-y des fichiers nommés database errors.log log mpd.log state tag_cache
Pour créer un fichire vide, par exemple database, faites
touch database
Ajoutez enfin un répertoire nommé playslists. Pour tous ces éléments, une petite modification s'impose encore. Placez vous dans le répertoire .mpd
cd ~/.mpd
Nous alons changer les droits sur les fichiers créés avant. mpd sera lancé par l'utilisateur mpd, qui appartient au groupe audio. Donc on modifie les droits d'accès en conséquence :
chown mpd:audio *

La suite est un peu sale. L'utilisateur et le groupe doivent avoir accès en lecture et écriture. Donc
chmod ug+rw *


Et il faut pouvoir rentrer dans le dossier. Donc
chmod a+x playlist
Et on arrête de donner des droits d'accès à tort et à travers (parceque c'est pas optimal. Mais y a mieux, et j'ai pas cherché ;-) )

La chose n'est toujours pas prête. On va devoir modifier le fichier de configurattion de MPD, qui se situe dans /etc. Avec nano pour moi, ce que vous voulez pour vous, mais il faut être root ;-) :

nano /etc/mpd.conf
vous allez modifier les valeurs suivantes :
music_directory : l'endroit où est votre musique, sur votre disque.
playlist_directory : Vous devez pointer le répertoire playlist créé précédemment. Donc a priori :
"/home/votrelogin/.mpd/playlist/"

db_file : "/home/votrelogin/.mpd/database"
log_file : "/home/votrelogin/.mpd/log"
state_file : "/home/votrelogin/.mpd/state"

J'ai laissé la variable pid par défaut, à savoir "/var/lib/mpd/mpd.pid", mais j'ai du créer le fichier qui va bien, je crois. dans le doute :
touch /var/lib/mpd/mpd.pid

user : laissez "mpd", on a fait les modifs pour ;)

Pour les utilisateurs d'une carte son Intel de type ICH9 (ou plus généralement celle qui utilisent le module snd_hda_intel), la section audio output devra ressembler à ça :

audio_output {
type "alsa"
name "Intel G45 DEVCTG"
# device "hw:0,0" # optional
format "44100:16:2" # optional
mixer_device "default" # optional
mixer_control "Master" # optional
mixer_index "0" # optional
}

Je sais, c'est étrange de virer la section device. Mais chez mois ça marche comme ça :-) .


À ce stade, la chose est prête à être lancée. Dans une console root :
mpd --create-db
rcmpd start

devrait passer sans problème. On crée ensuite la collection :
mpc update

Enfin, quelques petits trucs. J'aime bien être efficace, donc les deux scripts suivants peuvent être tout à fait pratique :

#!/bin/bash
if mpc |grep -q paused
then
mpc play
else
mpc pause
fi

ce script, que j'ai magnifiquement appelé pause, met en pause la lecture si mpc lit un fichier, et la remet en marche si mpc est en pause.

#!/bin/bash
if mpc|grep -q 'random: off'
then
mpc random on
else
mpc random off
fi

De même, ce programme (que j'ai nommé random) active ou désactive la lecture aléatoire.

Placez les deux scripts dans /home/votrelogin/bin . et rendez les exécutables avec un chmod u+x, aussi ;-) . L'avantage de les mettre dans ~/bin, c'est que vous pourrez les appeler très vite. Sous KDE, vous pourrez même utiliser le lanceur d'applications. Bref, la vie est belle :)

Enfin, j'ai aussi quelques petits alias (qui ne sont utilisables que depuis une console où vous êtes loggés en votre nom ). À mettre dans .bashrc (qui peut être créé pour l'occasion). :

alias next='mpc next'
alias stop='mpc stop'
alias play='mpc play'



Une dernière chose pour la route : mpd est un démon, il peut être lanccé automatiquement au démarrage. Pour les gens de chez suse, passez par YaST, trouvez le module qui gère les niveaux d'exécution, passez en mode expert, et cochez les cases 3 et 5 pour mpd. Prudence, cependant, si le démon est arrêté alors qu'une lecture est en cours, elle sera reprise automatiquement au démarrage suivant. Donc pour la discrétion... ;-)

Amusez-vous !

Aucun commentaire: