Raspberry Pi: Universeller Audio-Empfänger für Musikanlagen
Das Tutorial zeigt dir, wie du aus deinem Pi einen Audioempfänger für Musikanlagen machen kannst. Dazu kannst du entweder den Pi Model B oder den Pi Zero verwenden. Anschließend kannst du Musik direkt aus Spotify, über Airplay 2, DLNA oder Bluetooth direkt auf den Pi und damit an eine angeschlossene Musikanlage bzw. angeschlossene Boxen streamen. Die Lautstärke kann dabei bequem an jedem Abspielgerät eingestellt werden. Du musst also nicht zwingend die Lautstärke an der Musikanlage regeln.
Der Pi ist anschließend nur als Audioempfänger einsetzbar. D. h. du benötigst immer ein Abspielgerät im Netzwerk wie ein Smartphone, ein Tablet oder auch einen Windows oder Mac-Computer. Um den Pi selbst als Abspielgerät nutzen zu können, ist weitere Software notwendig. Dafür musst du dann jedoch über Bildschirm und Tastatur oder über SSH auf den Pi zugreifen können, um eine Wiedergabe zu starten. Je nach eingesetzter Software gibt es auch Lösungen, bei denen du über den Webbrowser auf die Musiksoftware des Pi zugreifen kannst.
Inhaltsverzeichnis
DAC-Soundkarte
Der Sound kann dabei über den Klinkenanschluss ausgegeben werden. Allerdings ist der integrierte Soundchip auf dem Raspberry Pi nicht gut, sodass der Sound sehr blechern klingt. Für Sprachausgabe mag das ausreichend sein, für Musik ist die Qualität jedoch deutlich zu schlecht.
Alternativ verwendest du eine Digital-to-Analog-Converter (DAC) Erweiterungskarte für die GPIO-Leiste. Es gibt inzwischen viele verschiedene Modelle, die einfach auf den Raspberry Pi aufgesteckt werden. Die populärsten sind wahrscheinlich die HifiBerry DAC Boards, die ich selbst getestet habe und die eine sehr gute Klangqualität haben.
Auf dem Bild oben siehst du links die DAC2 Pro Karte auf einem Raspberry 3 B+ und rechts die DAC+ Zero auf einem Raspberry Pi Zero. Beide DAC-Karten haben Cinch-Ausgänge, die du direkt an eine Stereoanlage anschließen kannst. Die DAC2 Pro hat zusätzlich noch einen Klinkenanschluss, der einen deutlich besseren Klang liefert als der integrierte Anschluss auf dem Raspberry Pi.
Beachte, dass du mit den aufgesetzten DAC-Karten auch neue Gehäuse benötigst, da der Pi zusammen mit den DAC-Karten nicht in die Standardgehäuse passen. HifiBerry bietet hierfür jedoch direkt passende Gehäuse an.
Voraussetzung
Ich gehe davon aus, dass Raspbian bereits installiert ist und auf den Pi entweder direkt mit Monitor und Maus oder mittels SSH über Netzwerk zugegriffen werden kann.
Installation Multi Audioreceiver
Unabhängig davon, ob und welche DAC-Soundkarte du verwenden möchtest, musst du die folgenden Installationsschritte ausführen, um den Pi als universellen Audioempfänger einzurichten.
Zunächst aktualisieren wir Raspbian falls es nicht auf dem aktuellsten Stand ist.
sudo apt update && sudo apt upgrade
Anschließend laden wir von Github ein Multi-Receiver-Tool auf den Pi, entpacken es und löschen das Archiv anschließend wieder.
wget -q https://github.com/nicokaiser/rpi-audio-receiver/archive/main.zip
unzip main.zip
rm main.zip
Danach führen wir das Installationsskript aus, das lediglich verschiedene frei verfügbare Tools installiert, um die Multi-Konnektivität zu ermöglichen. Es ist natürlich auch möglich die einzelnen Softwarepakete selbst zu installieren. Die Pakete liste ich unten auf.
cd rpi-audio-receiver-main
./install.sh
Als erstes wirst du nach dem Hostnamen gefragt. Standardmäßig heißt er „raspberrypi“. Du kannst ihn entweder beibehalten oder einen neuen wählen. Behalte dir auf jeden Fall den Namen, da du dich mit dem Hostnamen über SSH einloggen kannst. Ich habe ihne AudioPi genannt.
Als nächstes wirst du nach dem „Pretty-hostname“ gefragt. Dabei handelt es sich um die Bezeichnung des Raspberry Pi für Spotify, bei Airplay und als Bluetoothgerät. Du kannst ihn z. B. ebenfalls AudioPi nennen.
Anschließend werden verschiedene Softwarepakete installiert, die du jeweils mit „y“ genehmigen musst. Wenn du einzelne Pakete nicht installieren möchtest, hast du so bei jedem Paket die Wahl dies zu verhindern.
- BlueALSA: Bluetooth Audio ALSA Backend [github]
- Shairport Sync: AirPlay Audio Receiver [github]
- Raspotify: Spotify Connect Client für Raspberry Pi [github]
- gmrender-resurrect: UPnP Renderer [github]
- Snapcast: Snapclient Multi Room Audio Player [github]
- Pivumeter: Bringt zusätzliche ALSA Audiofunktionen [github]
Danach ist die Installation fertig und wir müssen den Pi noch neustarten, um die Softwarepakete zu aktivieren. Beachte, dass der Pi danach nur noch unter dem neuen Hostnamen erreichbar ist, in meinem Fall AudioPi.
sudo reboot
Nun kannst du den Audioempfänger testen. Dazu kannst du an den OnBoard Anschluss 3,5 mm Klinkenkopfhörer anschließen und testen, ob du den AudioPi in Spotify, bei AirPlay oder über Bluetooth findest und dich mit ihm verbinden kannst. Anschließend kannst du Musik abspielen. Dabei wirst du dann feststellen, dass die Qualität des Sounds nicht besonders hochwertig ist.
HifiBerry DAC aktivieren
Solltest du eine HifiBerry DAC-Erweiterungskarte verwenden, musst du Raspbian noch mitteilen, dass es die Erweiterungskarte statt dem On-Board Chip zur Audioausgabe verwenden soll. Öffne dazu folgende Datei.
sudo nano /boot/config.txt
In dieser Datei musst du zunächst den On-Board Chip deaktivieren, indem du die entsprechende Zeile löschst oder mit # auskommentierst.
#dtparam=audio=on
Anschließend fügst du eine Zeile hinzu, die die HifiBerry-DAC-Karte aktiviert. Je nach Modell unterscheidet sich die Zeile etwas. Du findest die entsprechenden Zeilen auf der Webseite von HifiBerrry [Link].
Für meine Karte DAC+ Pro füge ich folgende Zeile in die Konfigurationsdatei.
dtoverlay=hifiberry-dacplus
Für meine Karte DAC Zero füge ich folgende Zeile in die Konfigurationsdatei.
dtoverlay=hifiberry-dac
Speichere und schließe die Datei mit [STRG+X], bestätige mit [Y] und dann mit [Enter].
Anschließend starten wir den Pi neu.
sudo reboot
Nun ist der Pi einsatzbereit.
Lautstärke anpassen
Möglicherweise ist die Lautstärke sehr gering, selbst wenn du das Abspielgerät auf maximale Lautstärke einstellst. Mit folgendem Befehl kannst du den alsamixer aufrufen, mit dem du die Lautstärke regeln kannst.
sudo alsamixer
Mit den Pfeiltasten nach links und rechts kannst du zwischen den verschiedenen Ausgängen wechseln. mit den Pfeiltasten nach oben und unten kannst du dann die Lautstärke des gewählten Ausgangs anpassen. Hast du nur den integrierten Audio-Chip aktiviert, siehst du auch nur einen Ausgang. Der Screenshot unten zeigt meine Ansicht mit einer aktivierten HifiBerry Soundkarte.
Raspotify Einstellungen
Ich hatte zunächst Probleme mit Raspotify. Der Dienst konnte nicht richtig gestartet werden. Beheben konnte ich das, indem ich Raspotify manuell neuinstalliert habe.
Den Status des Raspotify Dienst kannst du mit folgendem Kommando abrufen.
sudo systemctl status raspotify
Taucht hier beim Status irgendwo FAILED statt SUCCESS auf, kannst du versuchen den Pi neuzustarten. Sollte dies keine Abhilfe verschaffen, ist es einen Versuch wert den Dienst neu zu installieren.
Dazu habe ich Raspotify zunächst deinstalliert.
sudo apt-get remove -y raspotify
Mit folgender Zeile installierst du dann Raspotify neu.
curl -sL https://dtcooper.github.io/raspotify/install.sh | sh
Du kannst zusätzlich noch Einstellungen für Raspotify vornehmen. Öffne dazu die Konfigurationsdatei.
sudo nano /etc/default/raspotify
In der Datei kannst du den „Pretty hostname“, hier DEVICE_NAME verändern. Beachte, dass die Änderung nur für Spotify und nicht für Bluetooth und AirPlay gilt. Außerdem solltest du für eine bessere Audioqualität die BITRATE von 160 auf 320 kbit/s ändern. Den DEVICE_TYPE kannst du entsprechend deines Abspielgerätes einstellen. In meinem Fall habe ich für meine Stereoanlage „avr“ angegeben. Zuletzt kannst du unter VOLUME_ARGS die Lautstärke auf 100% festlegen.
# /etc/default/raspotify -- Arguments/configuration for librespot
# Device name on Spotify Connect
DEVICE_NAME="AudioPi"
# Bitrate, one of 96 (low quality), 160 (default quality), or 320 (high quality)
BITRATE="320"
# Additional command line arguments for librespot can be set below.
# See `librespot -h` for more info. Make sure whatever arguments you specify
# aren't already covered by other variables in this file. (See the daemon's
# config at `/lib/systemd/system/raspotify.service` for more technical details.)
#
# To make your device visible on Spotify Connect across the Internet add your
# username and password which can be set via "Set device password", on your
# account settings, use `--username` and `--password`.
#
# To choose a different output device (ie a USB audio dongle or HDMI audio out),
# use `--device` with something like `--device hw:0,1`. Your mileage may vary.
#
#OPTIONS="--username <USERNAME> --password <PASSWORD>"
# Uncomment to use a cache for downloaded audio files. Cache is disabled by
# default. It's best to leave this as-is if you want to use it, since
# permissions are properly set on the directory `/var/cache/raspotify'.
#CACHE_ARGS="--cache /var/cache/raspotify"
# By default, the volume normalization is enabled, add alternative volume
# arguments here if you'd like, but these should be fine.
VOLUME_ARGS="--enable-volume-normalisation --volume-ctrl linear --initial-volume=100"
# Backend could be set to pipe here, but it's for very advanced use cases of
# librespot, so you shouldn't need to change this under normal circumstances.
#BACKEND_ARGS="--backend alsa"
# The displayed device type in Spotify clients.
# Can be "unknown", "computer", "tablet", "smartphone", "speaker", "tv",
# "avr" (Audio/Video Receiver), "stb" (Set-Top Box), and "audiodongle".
DEVICE_TYPE="avr"
No Comment