Fabriquez votre propre serveur musical haute fidélité.

Table des matières

L’idée de ce projet est de disposer de ma bibliothèque musicale depuis n’importe quel ordinateur. Le son doit être restitué en utilisant mes enceintes et mon amplificateur.

Comme je souhaite aussi avoir une très bonne restitution de la qualité sonore, j’ai numérisé mes CD audio au format FLAC. Donc il faut que ce serveur puisse lire les fichiers FLAC.

Du côté matériel, j’ai choisi des composants électroniques qui assurent une bonne restitution sonore.

Le boîtier doit-être élégant, à la hauteur de ce projet.

1 Le boîtier

Le châssis du boîtier se compose de quatre rails en aluminium. Les rails permettent de fixer les six panneaux du boîtier.

Pour la face avant du boîtier, j’ai choisi le style low poly, un style esthétique en vogue actuellement. Ce style se caractérise par des formes géométriques simples placées côte à côte pour créer des compositions angulaires.
Actuellement, le seul outil qui me permet de fabriquer la pièce que j’imagine, c’est mon imprimante 3D Hephestos 2.
J’ai dessiné la pièce avec un logiciel de CAO. Au moment de l’export du fichier au format STL, le logiciel offre la possibilité de choisir la résolution (un nombre élevé de polygones ou non). Donc pour obtenir un style low poly, j’ai diminué le nombre de polygones de la pièce.
L’inconvénient après avoir baissé la résolution, c’est que l’alésage que j’ai prévu au milieu de la pièce pour le bouton poussoir à une forme qui ressemble à un hexagone au lieu d’un cylindre « parfait » .
L’outil qui m’a aidé pour résoudre ce problème est Meshlab. En sélectionnant les parties de la pièce qui m’intéressent, j’obtiens la forme que je veux.
La face avant est maintenu avec deux équerres collées, pour éviter d’avoir des têtes de vis apparentes.

Les autres panneaux du boîtier sont des plaques de médium (MDF) découpées au laser, d’épaisseur 3 mm.

Les pieds sont en aluminium massif usiné.

2 L’électronique

L’ordinateur embarqué que j’ai mis dans le serveur musical est un Raspberry pi 3.
Pour le convertisseur audio numérique-analogique (DAC) j’ai pris un U-Sabre ES9023 24bit/192kHz.
Le DAC est connecté au Raspberry en I²s.

Le serveur musical doit être silencieux pour cela j’ai choisi une alimentation passive, une alimentation avec un dissipateur thermique sans ventilateur.
Le module d’alimentation linéaire régulé est construit avec deux circuits indépendants. Cela me permet d’alimenter séparément le Raspberry et le DAC pour éviter des interférences.
Le Transformateur 220v AC vers 12v DC est du type R-core.

Pour le câblage il y a 3, 4 brasages à faire et le reste se branche avec des connecteurs standards.

Un interrupteur à l’arrière du boîtier permet d’allumer et d’éteindre le serveur.

Pour redémarrer le Raspberry j’utilise le bouton poussoir situé sur la face avant du boîtier, il est connecté aux broches RUN du Raspberry.

Afin de protéger les composants des surtensions, il y a un fusible qui se trouve dans l’interrupteur. Il faut le dimensionner en fonction de la puissance des appareils.
Avec un wattmètre, je mesure la puissance maximum consommée du serveur musical : 11 watts.
Le calcul : Intensité = Puissance/Tension soit 11/220 = 0.05 cela donne un fusible de 50mA

serveur-musical-vue-interieur Vue intérieur

3 Le logiciel

3.1 OSMC

J’ai essayé différents logiciels audio pendant quelque temps, tel que Volumio, Moodeaudio, Mopidy, OSMC.
OSMC qui est une distribution Linux minimale basée sur Debian et le lecteur multimédia Kodi. L’image est complète et c’est facile à installer sur un Raspberry.
Ce que j’apprécie c’est l’interface web Chorus qui permet de naviguer dans mes albums avec les jaquettes.
Avec cette interface j’ai la possibilité de basculer la diffusion du son entre le DAC du Raspberry et mon ordinateur ou un autre périphérique : un autre détail que j’apprécie.
J’utilise aussi OSMC sur un autre Raspberry pour la vidéo, et ça fonctionne bien.
Du coup, j’ai choisi OSMC.

Édit : Avril 2020

Un jour, en utilisant une enceinte Bluetooth, cela m’a donné une idée. Supprimer le lecteur multimédia OSMC qui alimente le DAC, et transformer le Raspberry en serveur de son. Pourquoi pas ?
J’ai donc monté un serveur de son PulseAudio sur le Rpi. L’avantage, c’est que je ne suis pas limité par les médias proposés par OSMC (la radio et la bibliothèque d’album). Avec un serveur PulseAudio je peux diffuser directement le son de mon ordinateur vers le Raspberry. L’inconvénient c’est que le Raspberry n’est plus autonome, j’ai besoin d’un ordinateur « client » pour diffuser le son au serveur.

3.2 PulseAudio

3.2.1 Configuration du serveur

Installation des logiciels requis :

# apt update
# apt install pulseaudio pulseaudio-module-zeroconf

Définir le fichier de service PulseAudio :
nano /etc/systemd/system/pulseaudio.service

[Unit]
Description=PulseAudio Daemon
 
[Install]
WantedBy=multi-user.target
 
[Service]
Type=simple
PrivateTmp=true
ExecStart=/usr/bin/pulseaudio --system --realtime --disallow-exit --no-cpu-limit
ExecStop=/usr/bin/pulseaudio -k

Démarrez-le service PulseAudio et activez-le pour qu’il se lance automatiquement au démarrage.

# systemctl daemon-reload
# systemctl start pulseaudio.service
# systemctl enable pulseaudio.service

Pour rendre PulseAudio disponible sur le réseau, éditer le fichier suivant :
nano /etc/pulse/system.pa

load-module module-native-protocol-tcp auth-anonymous=1
load-module module-zeroconf-publish

Activer l’I²s et la carte son, heureusement, mon DAC U-Sabre ES9023 est compatible avec la carte hifiberry-dac
nano /boot/config.txt

dtparam=i2s=on
dtoverlay=hifiberry-dac

Redémarrer le Raspberry pi, si l’étape d’avant c’est bien passé vous devriez trouver le résultat suivant :

aplay -l

card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-hifi-0]

3.2.2 Configuration du client

Ajouter la configuration suivante, en spécifiant l’adresse ip du serveur :
nano /etc/pulse/default.pa

load-module module-tunnel-sink-new server=192.168.1.10 sink_name=rpi

Dernière étape; relancer le service PulseAudio :

systemctl --user restart pulseaudio.service

Vous devriez être en mesure de voir un nouveau périphérique audio disponible appelé : « Tunnel vers 192.168.1.10 ».

peripheriques-audio Peripheriques audio


Et voilà, il ne vous reste plus qu’à profiter de votre installation audio fraîchement installée et configurée.