J'ai acheté récémment une borne Airport Express, mon but étant d'envoyer de l'audio dessus depuis mon serveur local en controlant le tout depuis ma machine. En gros, je peux charger n'importe quel album dessus, sans avoir à toucher la chaîne.

Ce post sert de post-it pour moi et de tutorial éventuellement pour celui qui en a urait besoin.

Pour l'aspect contrôle et playlist, on utilisera mpd et pour l'envoie de l'audio vers la borne, on utilisera PulseAudio.

Pour ce qui est de la configuration de mpd, c'est assez simple et vous pouvez trouver tout ce que vous voulez sur Google. Pour l'aspect PulseAudio, c'est un petit peu plus compliqué et il n'y a pas de documentations très explicites, il faut farfouiller dans les forums pour le configurer. Surtout quand on attaque le module raop.

Allez, on commence :

Installation

sudo apt-get install alsa-base pulseaudio pulseaudio-module-raop
Le module raop est celui qui prends en charge l'envoie des données vers la borne.

Vous devez savoir que PulseAudio est prévu pour être utilisé par utilisateur et non pas pour tout le système. Vu que je l'utilise sur un serveur, il est lancé en daemon mais ce n'est peut être pas ce que vous voulez.

Configuration

Tout se passe dans un seul fichier: /etc/pulse/default.pa (pour une config globale à tout les users) ou ~/.pulse/default.pa (pour une config spécifique a un utilisateur). Pour une config utilisable sur tout le système c'est le fichier /etc/pulse/system.pa Tout d’abord faites une copie de sauvegarde, il vaut mieux etre prudent:

sudo cp /etc/pulse/default.pa /etc/pulse/default.pa_original
ou
cp ~/.pulse/default.pa ~/.pulse/default.pa_original
ou
sudo cp /etc/pulse/system.pa /etc/pulse/system.pa_original

puis éditez l’un des fichiers selon ce que vous souhaitez faire avec votre éditeur favori.

En ce qui me concerne, j'ai tout d'abord fait la configuration par utilisateur en éditant le fichier default.pa. Je voulais simplement que les données envoyés par PulseAudio aille vers la borne Airport, pas vers les enceintes du serveur (qui est un laptop, imaginez un peu le bazard si mon armoire se mets à faire de la musique :)).

Lancez le programme avec le débug, ça vous sera bien utile pour votre configuration :

pulseaudio -vvv

Si vous voulez faire la même que moi, pour vous épargnez d'avoir à le faire, voilà ma conf :

#!/usr/bin/pulseaudio -nF
.nofail
load-sample-dir-lazy /usr/share/sounds/ubuntu/stereo
.fail
load-module module-device-restore load-module module-stream-restore load-module module-card-restore
load-module module-augment-properties
load-module module-raop-sink server="IP DE VOTRE BORNE" load-module module-native-protocol-tcp auth-anonymous=1
load-module module-default-device-restore
load-module module-rescue-streams
load-module module-always-sink
load-module module-intended-roles
load-module module-console-kit
load-module module-position-event-sounds

En gras ce sont les astuces de la configuration en quelque sorte, vous devez spécifier l'ip de votre borne airport au module raop. Et l'argument "auth-anonymous=1" sur le module tcp permet à mpd d'envoyer un flux à PulseAudio sans soucis !

PulseAudio en daemon système

Maintenant que ça marche et que c'est configuré, autant le lancer en tant que daemon, ça sera toujours plus pratique !

Quelque petites modifications à faire pour cela, commentez ces lignes de /etc/init.d/pulseaudio :

if [ "$PULSEAUDIO_SYSTEM_START" != "1" ]; then
       log_warning_msg "PulseAudio configured for per-user sessions"
       exit 0
fi

Son de meilleur qualité

Petite astuce pour un son de meilleur qualité et une prise de ressource plus légère. ATTENTION : Ces options sont a tésté selon votre matériel, je vous engage à vous renseigner dessus et à faire vos propres choix !)

Editez le fichier /etc/pulse/daemon.conf et modifiez ces lignes :

resample-method = src-sinc-fastest
D'autres options sont disponibles, par ordre de qualité : src-sinc-best-quality, src-sinc-medium-quality, src-sinc-fastest, src-linear, trivial.

En général on ne remarque pas de grande différence, mais src-sinc-fastest doit être suffisant sans pour autant requérir à trop de ressources (voir pas du tout). L'option src-sinc-best-quality permet d'avoir mathématiquement la meilleure qualité de son, mais à vous de voir si vous tenez à utiliser la moitié des ressources processeur (à relativiser selon) pour jouer un morceau.

default-sample-rate = 48000
Là encore, le rééchantillonage en 44100 Hz est absurde étant donné que Alsa traite tout en 48000 Hz ; pourquoi alors, rééchantilloner deux fois ? C'est une perte de ressource et de qualité ; autant indiquer la valeur citée.

Notes Importantes:

  • Depuis certaine mises à jour d'Ubuntu, le son est devenu "lent". Comme si il était en slow-motion et cela uniquement sur la sortie PulseAudio. Je suis revenu à un échantillonage de 44100 Hz et tout va pour le mieux dans le meilleur des mondes !
  • Par défaut le volume d’ALSA est à zéro, lancez la commande « alsamixer » dans un terminal et montez le son là où c’est nécessaire (généralement au niveau de Master, PCM et/ou Front).
  • Source : Fluoblog Forum Ubuntu manpage daemon.conf

    feed ton aggrégateur !

    /var/www/flickr

    Lezardons !Port de BarfleurLumiere du PhareChemin du PhareMurakami Versailles #3Porte Doree VersaillesMurakami Versailles #1Panorama Phare de GatevilleJulia