Je suis de retour pour un court tutoriel, en musique cette fois-ci !

Voici la situation : ma musique est située sur mon laptop, sur lequel il est difficile de brancher la prise jack de mes enceintes (sortie foireuse). Mon serveur quant à lui tourne 24h/24 et possède une meilleure carte son et donc l’entrée jack est meilleure. Sauf que… la capacité de son disque dur est moindre, et utilisée à d’autres fins. Que faire ?

J’ai précédemment parlé de mpd, la solution libre de musique déportée. C’est naturellement la solution que j’ai privilégiée pour cette geekerie sonore :) .

Étape 0 : fixer les IP

Dans l’idée d’éviter tout problème d’accès aux machines, j’ai fixé les IP du serveur et du client dans la configuration DHCP de mon routeur (une neufbox v4). Je vous recommande chaudement d’en faire de même ;)

Mon serveur (qui va lire la musique) : 192.168.1.2
Mon laptop (qui héberge la musique) : 192.168.1.21

Premier problème : accéder à la musique

Pour accéder à ma musique à travers le réseau (et même en WiFi), le meilleur rapport simplicité/efficacité est l’utilisation de NFS, protocole permettant de monter à peu près n’importe quoi sur un client à partir d’une machine hôte. C’est plutôt simple à installer, sur mon laptop (Arch Linux) j’installe le serveur ainsi que portmap :

$ yaourt -S nfs-utils portmap

Dans le fichier de configuration /etc/exports, je définis quel répertoire partager et avec quelles permissions (ici la lecture seule) :

/home/addikt1ve/Musique/ *(ro)

Enfin, je lance les trois services :

# /etc/rc.d/portmap start
# /etc/rc.d/nfslock start
# /etc/rc.d/nfsd start

Maintenant, occupons-nous du client !

Pour les retardataires, on configure mpd

Si vous n’avez pas (encore !) touché à mpd, installez le serveur et le client (j’ai choisi Sonata) :

$ sudo apt-get install mpd sonata

Pour ma part, j’ai choisi de lancer mpd ponctuellement et en tant qu’utilisateur, donc je supprime le service du démarrage :

$ sudo /etc/init.d/mpd stop
$ sudo update-rc.d mpd remove

Monter le répertoire Musique du serveur

Sur mon poste client, en l’occurrence Ubuntu, j’installe nfs-common :

$ sudo apt-get install nfs-common

Je crée un point de montage dans mon home, on va dire ~/nfs/Musique :

$ mkdir ~/nfs/Musique

L’étape suivante, c’est de configurer mpd pour aller chercher la musique dans ce nouveau répertoire. Comme je suis trop cool, je vous fais tourner mon ~/.mpdconf :

# Fichiers et dossiers

music_directory "~/nfs/Musique"			# Là où se trouve la musique
playlist_directory "~/.mpd/playlists"		# Où mettre les playlists
db_file "~/.mpd/mpd.db"				# La base de données
log_file "~/.mpd/mpd.log"			# fichier de log
error_file "~/.mpd/mpd-error.log"		# fichier de log des erreurs
pid_file "~/.mpd/mpd.pid"			# fichier PID

# Connexion (facultatif)

bind_to_address		localhost		# Hostname
port 6600					# Où MPD doit écouter. Défaut : 6600

Nous y sommes presque ! On va à présent monter le répertoire contenant la musique à travers le réseau :

$ sudo mount -t nfs 192.168.1.21:/home/addikt1ve/Musique /home/addikt1ve/nfs/Musique/

C’est monté ! Vous comprenez l’intérêt d’utiliser une IP fixe… Bien évidemment, si vous tenez à monter ce répertoire à chaque démarrage de la machine, /etc/fstab le fait très bien mais je n’y ai pas regardé de plus près.

On lance finalement mpd, qui va mettre à jour sa base de données et nous laisser nous remplir les oreilles de decibels :) :

$ mpd

Une fois cette opération terminée, vous n’avez plus qu’à lancer Sonata et à vous connecter pour profiter de votre Michel Sardou préféré !

NB : je ne l’ai pas fait, mais pourquoi ne pas partager tout le répertoire .mpd ? Cela permettrait de ne tenir qu’une seule base de données des chansons. Je vous laisse vous amuser, seuls, pour cela.

Vous avez toute votre vie rêvé de diffuser illégalement de la musique soumise aux droits d’auteur ? D’ici une quinzaine de minutes, vous pourrez vous préparer à une visite surprise du GIGN dans votre chambre d’étudiant ;) !

Bon, si vous êtes geek, vous devriez savoir ce qu’est MPD et je vous invite très fortement à vous y intéresser de plus prêt si, en plus, vous aimez la musique et les playlists. Je ne vais pas faire un cours d’Histoire pour les mauvais élèves, sachez seulement que ce (fantastique) logiciel est un daemon, c’est-à-dire une sorte de « logiciel résident », une tâche exécutée en arrière-plan, en somme, qui ne dépend pas de votre interface graphique. Vous contrôlez ce daemon grâce à un frontend comme Sonata, ce qui assure une stabilité exceptionnelle (l’interface graphique crashe ? Pas grave, votre musique continue à passer) et une flexibilité hors du commun, comme nous allons le voir au cours de ce tutoriel. Trève de superlatifs, passons à l’action.

Afin de parvenir à vos fins, il vous faudra avoir installé mpd et Icecast, un serveur de diffusion. Pour schématiser, Icecast récupère le flux audio mpd et le diffuse sur le réseau en streaming.

Attention : pour que le duo fonctionne, il faut d’abord lancer Icecast, puis mpd sinon ça ne marchera jamais.

Je vous donne ma config mpd (fichier ~/.mpdconf). J’ai décidé de ne pas l’utiliser comme un deamon, mais de le lancer ponctuellement (au démarrage de ma session, en l’occurrence).

# Fichiers et dossiers

music_directory "~/Musique"			# Là où se trouve la musique
playlist_directory "~/.mpd/playlists"		# Où mettre les playlists
db_file "~/.mpd/mpd.db"				# La base de données
log_file "~/.mpd/mpd.log"			# fichier de log
error_file "~/.mpd/mpd-error.log"		# fichier de log des erreurs
pid_file "~/.mpd/mpd.pid"			# fichier PID

# Connexion (facultatif)

bind_to_address		localhost		# Hostname
port 6600					# Où MPD doit écouter. Défaut : 6600

# Si vous voulez contrôler l'accès au serveur (facultatif)
# Si l'option password n'est pas spécifiée, alors les personnes non authentifiées
# auront le droit de tout faire.

default_permissions "read,add,control,admin"	# Autorisations totales

audio_output {
    type        "shout"
    name        "AddiKT1ve"
    host        "localhost"
    port        "8000"
    mount       "/usr/share/icecast/stream.ogg"

# This is the source password in icecast.xml
    password    "hackme"

# Set either quality or bitrate
    quality     "5.0"
    format      "44100:16:1"

# Optional Paramters
    user        "source"
} # end of audio_output

# Need this so that mpd still works if icecast is not running
audio_output {
    type "alsa"
    name "fake out"
    driver "null"
}

Pour lancer mpd, tapez simplement mpd. Au premier lancement, vous aurez besoin de créer la base de données : mpd --create-db.

Et hop, mon /etc/icecast.xml – je n’ai pas changé le mot de passe par défaut, parce que moi, je suis un grand malade : icecast.xml.

Modifier les valeurs que j’y ai insérées – exemple : votre nom d’utilisateur fonctionnera mieux que le mien :D – et lancez le daemon (sous Archlinux, ça donne ça) :

sudo /etc/rc.d/icecast start

Par défaut, Icecast écoute sur le port 8000. Pour accéder à la page qu’affiche le logiciel, un petit tour par localhost:8000 et le tour est joué. Remplacez localhost par l’IP locale du PC pour écouter le flux à partir d’une autre machine sur le réseau. Et pour l’écouter depuis l’Internet multimédia interactif 2.0, utilisez le NAT de votre routeur afin d’ouvrir le port… Et voilà ;) !

Bonne écoute à toutes et à tous, et bon piratage !

J’avais envie de vous présenter un petit peu mon environnement sous Arch Linux, c’est-à-dire le look’n'feel et les apps que j’utilise. On commence par un screenshot ?

Screenshot Conky

C’est Gnome 2.22.1, avec lequel j’utilise le thème GTK2 StudioLooks, le thème Metacity Glossy, les icônes Mist, et les pointeurs Neutral. Pour les logiciels, voici une liste exhaustive :

Navigateurs : Firefox, Epiphany, Opera
Client MSN : emesene
Client IRC : XChat
Client FTP : FileZilla
Client VNC : TightVNC
Client BitTorrent : Transmission
Éditeur de texte : gedit
Musique : mpd + Sonata
Vidéo : Gnome MPlayer
Éditeur d’images : The Gimp
Traitement de texte : AbiWord
Tableur : Gnumeric
Visionneur de PDF : Evince
Visionneur d’images : gThumb
Monitoring système : Conky

Un petit coup de Compiz-Fusion par-dessus tout ça, et hop, roulez jeunesse ;) .