Du libre, du code, des idées, du mélange d’ArraKISS…

De l’épice pour la pensée

Il y a une chose qui me touche de plus en plus : les musiques de film. Il m'arrive de rester scotché sur la bande son et ne même plus suivre les images.
Sauf que, il faut l'avouer, retrouver dans les crédits la piste jouée, ce n'est pas pratique.
Heureusement, il y a http://www.what-song.com

Ce site est génial : on tape le film ou la série dans lequel on a entendu un bon morceau, et il liste toutes les pistes que l'on peut écouter en ligne. Sans flash, donc mon OpenBSD adore :D

Associé à gnoosic pour trouver des artistes similaires, ça fait grossir la musicothèque à une célérité = c.

enjoy !

Sur le même modèle que music for programming qui propose des playlists pour se concentrer, je voulais faire la même chose mais pour se donner du courage pendant une séance de sport. Avis donc aux amateurs de TRX, crossfit ou autres folies, j'ai commencé une petite liste de lecture, qui sera sans doute améliorée à l'avenir.

Voici la liste actuelle, qui fait environ 36 minutes :

  • Indestructible - Disturbed
  • Voodoo people - Pendulum (reprise)
  • Take a look around - Limp Bizkit
  • Invaders must die - The Prodigy
  • I disapear - Metallica
  • killing in the name of - RATM
  • Guilty all the same - linkin park
  • 10000 watts - two steps from hell

N'importe quel navigateur digne de ce nom devrait vous permettre de l'écouter avec le lecteur ci-dessous. Sinon, clic-droit puis "enregistrer-sous". Patience, le fichier fait quand même 36M, et j'ai une petite bande passante. Merci coralcdn pour le cache (j'en reparlerai bientôt pour les auto-hébergés).

J'aurais voulu des musiques libres de droit, mais je n'en connais pas encore qui crée ce petit truc au creux du ventre et déclenche une bouffée d'adrénaline. N'hésitez pas à en proposer dans les commentaires.

Il est souvent question du "meilleur lecteur de musique". On voit alors passer des amarok, clementine ou quodlibet. Alors ok, ces derniers ne sont pas mauvais, il faut l'admettre. Mais ils font tout un tas de choses inutiles pour la plupart d'entre nous.

Là, on va parler de MPD alias Music Player Daemon, qui est selon moi le meilleur lecteur de musique. Pourquoi?

  • Il nécessite peu de ressources.
  • Il supporte des milliers de morceaux sans aucun ralentissement ni bugs. Seul quodlibet lui fait concurrence sur ce point. Actuellement, ma liste de lecture contient 14102 morceaux.
  • Il dispose de nombreuses interfaces et s'adapte ainsi à tous les goûts.
  • Il est très facile d'écrire des petits outils pour le contrôler.
  • On peut même diffuser sa musique.

Sa particularité est d'avoir le lecteur sous forme de "serveur" qui tourne en arrière plan et qui lit votre musique, alors qu'il peut être contrôlé par les interfaces de votre choix. C'est en fait un véritable avantage. Eh oui, vous pouvez vouloir utiliser un client très complet comme gmpc :


Un client léger mais agréable comme sonata :


Ou alors un truc de geek comme ncmpcpp :



On va voir dans les prochaines parties comment installer mpd sur debian, puis quelques astuces de geekounets ☺ .

L'installation de MPD :
Sur debian, il n'y a pas de surprises, il faut installer le paquet mpd. Je vous conseille vivement d'installer aussi un client comme mpc (qui servira dans les scripts) et un client graphique tel que l'excellent sonata :

sudo apt-get install mpd mpc sonata

Pour configurer mpd, vous avez 2 possibilités :

  1. Éditer le fichier /etc/mpd.conf : la configuration sera la même pour tous les utilisateurs du système.
  2. Éditer un fichier /home/votre-login/.mpdconf . Dans ce cas, il faudra lancer la commande mpd manuellement pour le lancer. De plus, il faudra désactiver le lancement automatique de mpd au démarrage avec les commandes suivantes :
systemctl disable mpd.service
systemctl disable mpd.socket

La syntaxe du fichier de configuration est cependant la même. Il n'y a rien de farfelu dedans, je vais donc vous proposer ci-dessous un fichier de configuration avec des commentaires pour vous aider à l'adapter à votre cas.

# Répertoire contenant les musiques
music_directory		"~/Musique"
# Mise à jour automatique de la liste des musiques
auto_update     "yes"

# fichiers permettant de retenir des informations sur la liste de lecture de mpd
# Pensez à créer le dossier ~/.mpd
db_file			"~/.mpd/tag_cache"
pid_file			"~/.mpd/pid"
state_file			"~/.mpd/state"
# Répertoire des listes de lecture. Pensez à le créer
playlist_directory		"~/.mpd/playlists"

# Le nom d'utilisateur qui lance mpd (pour ne pas être lancé en tant que root)
user				"petitjibus"

# On ne veut pas diffuser ici.
bind_to_address		"localhost"

# La liste de lecture contient le chemin complet des fichiers
save_absolute_paths_in_playlists	"yes"

audio_output {
	type		"alsa"
	name		"My ALSA Device"
	mixer_device	"default"	# optional
}

# Le son reste le même au changement de chanson
volume_normalization		"yes"

# Respect de l'UTF-8 dans les noms de fichier
filesystem_charset		"UTF-8"
id3v1_encoding			"UTF-8"


Une fois votre configuration terminée, relancez le service mpd (avec "service mpd restart" ) ou bien lancez la commande mpd selon que vous ayez choisi le cas 1 ou 2.

Astuces diverses :

  • mpdscribble (voir le paquet du même nom) permet d'envoyer sur last.fm et sur libre.fm vos lectures et sert donc de "scrobbler" (Si certains connaissent la traduction de ce mot...). Vous devrez le configurer dans /etc/mpdscribble.conf et modifier /etc/default/mpdscribble pour avoir
    MPD_SYSTEMWIDE=1
  • Vous trouverez ici un script qui permet de lire n'importe quelle fichier audio dans mpd même s'il n'est pas dans la base de données. Il faut juste mpc d'installé. C'est particulièrement pratique en actions personnalisée dans thunar par exemple.

Pour l'utiliser, lancer

play_in_mpd /chemin/vers/la/musique.mp3

Pour seulement ajouter le fichier dans la liste de lecture, ajoutez l'option -n :

play_in_mpd -n /chemin/vers/la/musique.mp3

  • Pour mélanger la liste de lecture :
    mpc shuffle
  • Pour mettre à jour votre liste de lecture après avoir ajouté de nouveaux morceaux à votre bibliothèque :
    mpc --wait update && mpc clear && mpc ls |mpc add
  • Ajouter une radio à la liste de lecture :
    mpc add "http://audio.scdn.arkena.com/11008/franceinter-midfi128.mp3"
    .

  • Chercher une chanson et la jouer rapidement avec dmenu avec le script dmpc
  • Afficher la chanson jouée par mpd :
    mpc status |head -n1
  • Avancement de la lecture :
    mpc |grep -Eo '[0-9]+:[0-9]+/[0-9]+:[0-9]+' 
  • Et vos astuces?


Voir aussi :

J'ai enfin mis en place à moindre frais une sorte de jukebox fait maison. L'idée est d'avoir de la musique de qualité qu'on peut entendre partout dans l'appartement, et de pouvoir contrôler la lecture de n'importe où aussi.

Alors pour le matériel, j'ai juste une chaîne HiFi (qui finalement date un peu beaucoup). Donc au niveau du son dans toutes les pièces, on peut faire nettement mieux avec du matériel plus récent. Cette chaîne reçoit le flux audio par un jack relié à un raspberry Pi. Notez que ça pourrait être n'importe quel pc, mais au moins, le raspberry consomme très peu.

La musique est située sur mon serveur, qui est présente de façon transparente sur le raspberry pi grâce à sshfs. On pourrait très bien faire de même avec un partage ntf, ou encore simplement monter un disque dur sur le raspberry pi. Bon, pour ce qui est de la lecture, tout roule.

Voyons maintenant comment contrôler le tout (changer de chanson, augmenter/baisser le volume...) :




Ce raspberry se [connecte automatiquement au lancementforums.debian.net/viewtopic.php?t=119348 et lance 2 commandes ajoutées au fichier ~/.profile :


Ce dernier est un client avec une interface web. Il ne nécessite pas php, et est codé en C, c'est dont tout à fait adapté au raspberry. Bon par contre, je n'ai relié aucun écran au raspberry pi, donc pour accéder à l'interface de ympd, il me suffit d'un navigateur web pour aller à l'adresse 192.168.1.69:8080 . C'est très facile avec un smartphone par exemple, qui fait office de télécommande.

Pour retrouver cette adresse, vous pouvez lancer cette commande sur le raspberry pi :

/sbin/ifconfig |grep inet

Et si l'interface de ympd ne vous plaît pas, rien n'empêche de contrôler la lecture avec ssh. On crée des clés pour ne pas avoir à entrer de mot de passe, puis on gère mpd avec nos scripts habituel. Par exemple, pour passer à la chanson suivante :

ssh alias_pour_la_musique mpc next

Plus simplement, n'importe quel client à mpd peut aussi se connecter à l'hôte 192.168.1.69 si vous le configurer correctement :

mpc -h 192.168.1.69 next

Attention, mpd doit avoir dans ce cas dans son fichier de configuration

bind_to_adress "192.168.1.69"

et ympd doit être lancé ainsi :

ympd -h 192.168.1.69