Dies ist eine alte Version des Dokuments!
Spotify Connect auf dem Raspberry Pi
Im Sommer 2020 habe ich mir einen Beyerdynamic DT 1990 Pro zugelegt. Mit einer Impedanz von 250 Ohm ist der DAC im Lightning-zu-Klinke-Adapter von Apple jedoch hoffnungslos überfordert. Also habe ich mir einen Kopfhörerverstärker mit DAC - und zwar den RME ADI-2 DAC FS - zugelegt. Ein klasse Gerät, das ich jedem HiFi-Enthusiasten nur wärmstens empfehlen kann. Das iPhone mit einem Kabel mit dem DAC bzw. Verstärker zu verbinden war jedoch auf Dauer nervig. Die Übertragung mit Airplay über eine Airport Express 2 war nicht zufriedenstellend, weil ein Knistern zu hören war. Also habe ich nach einer Alternative gesucht und Raspotify gefunden. Mit Raspotify ist es möglich, einen Raspberry Pi als Wiedergabegerät in der Spotify-App anzugeben. Die Übertragung erfolgt also nicht via Airplay über das iPhone, sondern mit Spotify Connect direkt über den Raspberry Pi.
Raspotify installieren und konfigurieren
Alle Infos zu Raspotify: https://github.com/dtcooper/raspotify
Die folgenden Notizen beziehen sich auf Raspotify 0.41.0.
Mit dem folgenden Skript wird Raspotify automatisch installiert:
sudo apt-get -y install curl && curl -sL https://dtcooper.github.io/raspotify/install.sh | sh
Für guten Ton sorgen
Nach erfolgreicher Installation müssen an der Konfigurationsdatei Änderungen vorgenommen werden. Das ist nötig, weil die Konfiguration in der Spotify-App, bspw. die Wiedergabequalität, nicht für das Ausgabegerät übernommen werden. Die Konfigurationsdatei von Raspotify übergibt diese an die Konfigurationsdatei von librespot. Eine Auflistung der Konfigurationsoptionen von librespot gibt es hier. Dafür wird die Konfigurationsdatei aufgerufen:
sudo nano /etc/raspotify/conf
Zunächst schalte ich die Lautstärkenormalisation ab. Dazu muss der Befehl mit einem Doppelkreuz auskommentiert werden.
#LIBRESPOT_ENABLE_VOLUME_NORMALISATION=
Anschließend ändere ich den in der Spotify-App angezeigten Namen für Raspotify.
LIBRESPOT_NAME="ADI-2-DAC"
Vor allem sollte die Bitrate erhöht werden.
LIBRESPOT_BITRATE="320"
Mit dem Befehl
librespot --device ?
werden alle kompatibeln Ausgabegeräte angezeigt. Damit das funktioniert, muss der DAC per USB angeschlossen sein. In meinem Fall erhalte ich die folgende Ausgabe (gekürzt):
Device: surround40:CARD=DAC59740198,DEV=0 Description: ADI-2 DAC (59740198), USB Audio 4.0 Surround output to Front and Rear speakers Supported Format(s): S32 ------------------------------------------------------ Device: iec958:CARD=DAC59740198,DEV=0 Description: ADI-2 DAC (59740198), USB Audio IEC958 (S/PDIF) Digital Audio Output Supported Format(s): S32
Das zweite Ausgabegerät muss nun konfiguriert werden. Dazu muss zunächst das Output-Format geändert werden.
LIBRESPOT_FORMAT="S32"
Anschließend muss das entsprechende Ausgabegerät definiert werden.
LIBRESPOT_DEVICE="iec958:CARD=DAC59740198,DEV=0"
Nach Änderungen an der Konfigurationsdatei muss der Dienst neu gestartet werden:
sudo systemctl restart raspotify
Automatischer Reboot
Bevor ich ein Gehäuse mit Taster zum Ein. und Ausschalten hatte, lief der Raspi einfach 24/7. Nach einigen Wochen ausgiebiger Nutzung hat sich gezeigt, dass mit der Zeit die WLAN-Verbindung instabil wird. Das äußert sich in häufigen Verbindungsabbrüchen. Da ein Neustart Abhilfe zu schaffen scheint, habe ich einen Cronjob eingerichtet, der den Raspberry täglich um 4:00 Uhr neu startet.
Dafür wird zunächst die Crontabelle geöffnet.
sudo crontab -e
Anschließend wird der folgende Befehl eingetragen.
00 4 * * * sudo reboot
Power On / Off
Im Juni 2022 habe ich meinen Raspberry Pi in das Pi Case 40 von Cooler Master gepflanzt. Dieses Gehäuse hat einen kleinen Taster, mit dem man den Raspi ein- und ausschalten kann. Das Einschalten funktioniert ohne zusätzlichen Code, um ihn mit dem Taster ausschalten zu können, muss man in die Datei /boot/config.txt den folgenden Code einfügen.
dtoverlay=gpio-shutdown
Den täglich Reboot (siehe oben) kann man sich dann freilich schenken.
Hintergrundinformationen
- In der c't 17/2021 gibt es auch einen interessanten Artikel über raspotify. Dort findet nach auch einen Hinweis, wie man Airplay einrichtet.