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

### Automatically restore the volume of streams and devices
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

### Automatically restore the default sink/source when changed by the user during runtime
load-module module-default-device-restore

### Automatically move streams to the default sink if the sink they are
### connected to dies, similar for sources
load-module module-rescue-streams

### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink

### Honour intended role device property
load-module module-intended-roles

### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
load-module module-console-kit

### Enable positioned event sounds
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.

Note Importante:

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


Laisse un commentaire