Serveur principal
Rôle
Ce serveur servira
- de serveur Snapcast pour le multiroom
- de serveur Mopidy pour Spotify ou des fichiers locaux typiquement
- de récepteur bluetooth
Prérequis
- Rasperry PI 3B+
- Raspberry Pi OS : Bookworm Lite
- Hat Hifiberry Digi+
Packages
Nécessaire pour l'audio BlueTooth
Configuration système
Inutile de désactiver l'audio via HDMI. IL peut être utile.
Installation Snapserver & Snapclient
sudo apt install snapserver
wget https://github.com/badaix/snapweb/releases/download/v0.6.0/snapweb_0.6.0-1_all.deb
dpkg -i snapweb_0.6.0-1_all.deb
sudo apt install snapclient
mkdir /run/snapserver
chown _snapserver:audio /run/snapserver
chmod 0775 /run/snapserver*
systemctl restart snapserver
Fichiers de configuration
Création du fichier /etc/asound.conf
Ce fichier permet de créer une "sortie" audio bleutooth sous forme d'un fichier FIFO.
pcm.bluetooth {
type plug
slave.pcm rate48000Hz
}
pcm.rate48000Hz {
type rate
slave {
pcm writeFile # Direct to the plugin which will write to a file
format S16_LE
rate 48000
}
}
pcm.writeFile {
type file
slave.pcm null
file "/run/bluefifo"
format "raw"
}
Mise à jour du fichier /etc/snapserver.conf
Dans se fichier, les sources redirigée vers snapserver sont définies dans la section stream
.
De plus, le chemin racine de l'interface Web de snapserver peut être configurée.
[stream]
...
source = pipe:///run/snapserver/mopidyfifo?name=Mopidy
source = pipe:///run/bluefifo?name=Bluetooth
[http]
...
doc_root = /usr/share/snapweb
...
Installation MOPIDY
Installation du serveur Mopidy
sudo mkdir -p /etc/apt/keyrings
sudo wget -q -O /etc/apt/keyrings/mopidy-archive-keyring.gpg https://apt.mopidy.com/mopidy.gpg
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/bullseye.list
sudo apt update
sudo apt install --no-install-recommends mopidy
sudo apt install --no-install-recommends python3-pip
sudo pip install --break-system-packages mopidy-iris
Warning
La documentation du plugin sur Mopidy-Spotify est incorrecte. Il faut aller voir la doc sur Github et forcer l'installation de la version 5.0.0a1 en date du 24/03/2024.
Installation du plugin Spotify
sudo pip install --break-system-packages Mopidy-Spotify==5.0.0a1
wget https://github.com/kingosticks/gst-plugins-rs-build/releases/download/gst-plugin-spotify_0.12.2-1/gst-plugin-spotify_0.12.2-1_armhf.deb
sudo apt install ./gst-plugin-spotify_0.12.2-1_armhf.deb
Il faut récupérer le client id / client secret pour l'utilisation des API Spotify.
Warning
Il faut un compte Spotify Premium
Quelques éléments restent à configurer dans le fichier de configuration Mopidy.
[http]
hostname = 0.0.0.0
[spotify]
username=<username>
password=<password>
client_id = <clientid>
client_secret = <client secret>
[audio]
output = audioresample ! audioconvert ! audio/x-raw,rate=48000,channels=2,format=S16LE ! filesink location=/run/snapserver/mopidyfifo
La section audio
permet de définir une nouvelle "sortie" audio sous la forme d'un nouveau fichier FIFO qui sera lu par Snapserver