Raspberry Pi als Airplay Receiver an der Stereo-Anlage

Dieses Wochenende bin ich Strohwitwer. Was macht man da? Natürlich erstmal die Büchse Faxe aufreißen und sich in Spaßprojekte stürzen! Da ich aktuell meine CD-Sammlung digitalisiere, will ich das Ergebnis natürlich auch irgendwie konsumieren. Am liebsten in angemessener Tonqualität. Da taugen die Google Nest, die hier im Haus überall verteilt sind, nur bedingt. Und auf mittlere Sicht, sollen diese kleinen Big-Tech-Wanzen eh mal das Haus verlassen, Multiroom-Wiedergabe ist eigentlich der einzige Einsatzzweck. Nur in der Küche ist das „Stell einen Timer“ durchaus nützlich und darf auch länger dort verweilen. Aber ich schweife fast schon ab…

Nebenbei: So als kleiner Fun-Fact zu mir: Ich habe nie in meinem Leben einen CD-Player als Baustein besessen. Ich hatte Plattenspieler, Kassettenspieler und natürlich einen schweren Onkyo-Stereo-Verstärker, den mir Ende der 90er mal mein Onkel geschenkt hat. CDs sind seinerzeit immer auf dem Ghettoblaster abgespielt worden, oder über den PC, der an den Onkyo angeschlossen war. Nun, auf jeden Fall ist dieser alte Onkyo nun in meinem Arbeitszimmer, daran klemmen zwei Teufel-Boxen. Alles alter Krempel und alles andere als Smart. Stereo it is. Und vielleicht Cinch-Eingänge. Das rockt und mehr braucht man für Death Metal auch nicht. Wer was anderes erzählt ist ein Poser! Egal. Irgendwie muss die Musik nun aus dem Netzwerk in die Anlage. Ein Blick in die möglichen Abspielgeräte in der Subsonic App auf dem Smartphone verrät mir: Meine Sonos-Boxen aus Wohn- und Schlafzimmer melden sich als Airplay-Clients. Da geht doch sicherlich was!

In meiner Schublade liegt schon seit Ewigkeiten ein Raspberry Pi 3b. Den habe ich mir irgendwann geholt, weil ich die Dinger einfach nur geil finde. Aber ich bin ja auch ein Trottel. Denn einen wirklichen Einsatzzweck für den Raspi habe ich nie gefunden. Heimserver? Dafür habe ich schon mein Thinkcentre. NAS? Da steht ein Synology-Würfel, du Depp! Retro-Konsole? Nice try, aber Du bist zu alt für den Krempel, deine Reflexe reichen heute nur noch für das Anrühren von Mörtel, um den nächsten Defekt im Second Hand Haus zu reparieren. Aber endlich, endlich habe ich einen Einsatzzweck! Auf dem Raspi kann ich sicherlich was installieren, was Airplay empfängt und den Kram irgendwie auf der Anlage ausspuckt.

Ja, sicherlich ist die eingebaute Audiobuchse und der DAC eher Kindergeburtstag. Ist ja eigentlich auch ein SOC für Kinder. Aber da kann ich sicherlich auch später noch mit einer USB-Soundkarte dran. Oder auch nicht, ich höre Death Metal, Grindcore und etwas Black Metal. Das sind nicht unbedingt die audiophilsten Genre, sondern in Loudness War und bewusster Unterproduktion ertränkte Presslufthammer mit schlechter Laune. Da würde auch ein Büchsentelefon als DAC ausreichen. Also in den Keller und alles zusammengesammelt.

Zutaten:

  • 1x oller Raspberry Pi
  • 1x USB auf Micro-USB-Kabel, 30cm
  • 1x RJ45 Netzwerkkabel, 30cm
  • 1x Micro-SD + Adapter auf SD, damit ich die Karte im Laptop mit dem Image bespielen kann
  • 1x 3,5mm Klinke zu Cinch-Kabel um den Pi mit dem Verstärker zu verbinden
  • 2 Dosen Faxe für den Betrieb des Operators

Und dann kann es schon losgehen!

Erstmal das Raspberry Pi OS Lite als 64 bit Edition von der offiziellen Seite heruntergeladen. Klassisch über den Browser ins Downdload-Verzeichnis.

Der Raspberry Imager wollte bei mir nicht. Weder als Appimage, noch aus dem Repo von Archlinux, immer wieder ist der beim Wechsel zu root abgestürzt. Also gut, mit Balea Etcher einfach das Image erstmal auf die Micro-SD gewemmst. Mir doch Wumpe, wie das darauf kommt.

Zur Konfiguration auf der fertigen SD-Karte dann im Bootfs erstmal ein touch ssh gemacht, um den SSD-Dämon zu beschwören. Und dann daneben eine custom.toml erstellt, die Hostname, OS-User, SSH-Key und Wlan vor dem Start festlegt. Damit ich direkt headless loslegen kann. SD-Karte ausgeworfen, in den Pi rein und den geschaut, ob alles startet, wie ich es erwarte…

Natürlich hat es nicht so geklappt, wie ich mir das vorgestellt habe. Also doch schnell Keyboard und Monitor angeschlossen, raspi-config aufgerufen und alles manuell gesetzt. Auch egal.

  • System Options
    • Wireless LAN
    • Hostname
  • Interface
    • SSH aktivieren
  • Localization
    • Locale: C.UFT-8
    • Keyboard: German
    • Timezone: Europe/Berlin
    • Wifi-Region: DE
  • Advances
    • Extend File System
  • Update des Betriebssystems

Einrichtung fertig, Reboot. Anschließend über die Fritz!Box einen statischen DHCP-Lease gegeben, damit ich immer über die gleiche IP auf die Kiste komme.

Nachdem der Pi nun eingerichtet war, konnte ich alles vertüddeln. RJ-45 in einen freien Slot im Switch, Micro-USB-Stromversorgung über einen USB-Ausgang am NAS, das eh immer läuft. Für den ersten Test, ganz plump ein Klinke-Cinch-Kabel in den Audio-Ausgang des Pis und in den AUX-Eingang der Anlage. Mir ist bewusst, dass hier mal aufstocken muss und mir eine externe USB-Soundkarte zulegen muss. Für einen Rauchtest reicht die Klinkenbuchse jedoch allemale.

Nach diesem Boot kann ich auch über den Hostnamen eine SSH-Verbindung herstellen, ausgezeichnet.

Damit der Pi nun als Receiver im Heimnetzerk erkannt wird, brauche ich natürlich einen Airplay-Listener. Also mit sudo apt shairpoint-sync installiert. Konfiguration in /etc/shairport-sync.conf grundlegende Konfiguration zum testen:

general = {
    name = "pi-arbeitszimmer";
    ignore_volume_control = "yes";
};
alsa = {
    output_device = "plughw:CARD=Headphones";
};

Anschließend den Dienst gestartet: sudo systemctl enable --now shairport-sync. Substreamer auf dem Smartphone an und schon sehe ich den Pi als mögliches Ausgabegerät für die Wiedergabe. Nice!!

Leider funktioniert die Lautstärke-Steuerung über die Smartphone-Wippe noch nicht. Das ist Logisch, denn Volume Control ist ja über die Konfiguration explizit deaktiviert. Vorher war es aber leider so leise, dass selbst die maximale Lautstärke an der Anlage eher ein leises Flüstern war. Für’s erste kann ich aber damit leben.

Wo ich nun via Airplay schon Musik aus dem heimischen Navidrome einfach auf die Anlage werfen kann, will ich natürlich auch mal Spotify testen. Dazu muss ich erstmal ein neues Repo registrieren und dann raspotify installieren:

curl -fsSL https://dtcooper.github.io/raspotify/key.asc \
>   | sudo gpg --dearmor -o /usr/share/keyrings/raspotify.gpg
chris@pi-arbeitszimmer:~$ echo "deb [signed-by=/usr/share/keyrings/raspotify.gpg] https://dtcooper.github.io/raspotify raspotify main" \
>   | sudo tee /etc/apt/sources.list.d/raspotify.list
deb [signed-by=/usr/share/keyrings/raspotify.gpg] https://dtcooper.github.io/raspotify raspotify main
sudo apt update && sudo apt install -y raspotify

Und in /etc/raspotify/conf noch etwas Konfiguration:

LIBRESPOT_NAME="pi-arbeitszimmer"
LIBRESPOT_BITRATE="320"
LIBRESPOT_INITIAL_VOLUME="100"

Und schon sieht Spotify auf meinem Smartphone meinen Pi. Hier klappt sogar die Lautstärke-Regelung mit der Wippe out-of-the-box. Ich bin begeistert!

Wo nun der erste Rauchtest erfolgreich war, und ich prinzipiell Musik vom Smartphone auf meine Stereo-Anlage geworfen bekomme, werde ich wohl mal ein paar Euro in eine USB-Soundkarte investieren und damit Klang - und vielleicht auch Volume Control - etwas zu verbessern. Und dann kann ich demnächst in guter Qualität meine frisch digitalisierte Musiksammlung hören.