Benutzer-Werkzeuge

Webseiten-Werkzeuge


raspberry_pi:raspotify

Spotify Connect mit Raspotify auf dem Raspberry Pi

Im Sommer 2020 habe ich mir einen Beyerdynamic DT 1990 Pro zugelegt. Mit einer Impedanz von 250 Ohm ist der Verstärker 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 findet man bei GitHub. Im Wiki findet man einige Infos zur Konfiguration, aber leider längst nicht alle. Im Folgenden dokumentiere ich die Einstellungen, die ich vorgenommen habe. Meine Notizen beziehen sich auf Raspotify ab Version 0.40.0. Aktuell ist Version 0.43.56 (Dezember 2023).

Installaltion

Mit dem folgenden Skript werden die aktuellste Version von Raspotify und alle abhängigegen Bibliotheken automatisch installiert:

sudo apt-get -y install curl && curl -sL https://dtcooper.github.io/raspotify/install.sh | sh

Konfiguration

Nach erfolgreicher Installation muss Raspotify konfiguriert werden. Eine Übersicht über die Konfigurationsoptionen gibt es hier.

Ausgabegerät konfigurieren

Bevor Raspotify konfiguriert werden kann, muss man zunächst herausfinden, welche kompatiblen Geräte angeschlossen sind. Damit das funktioniert, muss das Ausgabegerät - in meinem Fall der RME ADI-2 DAC FS - per USB an dem Raspberry Pi angeschlossen sein. Dann gibt man den folgenden Befehl ein:

librespot --device ?

Anschließend erhält man eine lange Ausgabe, die in meinem Fall unter anderem die folgenden Angaben enthält:

        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

Diese Angaben sollte man sich merken, denn sie werden für die Konfiguration von Raspotify benötigt.

Die Konfigurationsdatei wird mit dem folgenden Befehl aufgerufen:

sudo nano /etc/raspotify/conf

Um den RME ADI-2 DAC FS als Ausgabegerät zu konfigurieren, muss 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"

Für guten Ton sorgen

Um einen möglichst guten Sound zu erhalten, sollten mindestens die folgenden Änderungen vorgenommen werden.

Zunächst schalte ich die Lautstärkenormalisierung 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"

Ich möchte die Lautstärke an meinem RME ADI-2 DAC regeln, nicht am iPhone. Daher wird die Ausgabelautstärke auf 100 und die Lautstärkeregelung auf fixed gesetzt.

LIBRESPOT_INITIAL_VOLUME="100"
LIBRESPOT_VOLUME_CTRL="fixed"

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

raspberry_pi/raspotify.txt · Zuletzt geändert: 23.12.2023 22:40 von Frickelpiet