Dies ist eine alte Version des Dokuments!
DietPi Audiophiler Streamer
Raspberry Pi 2B + HifiBerry DAC — Spotify Connect · Radio Bob · Multiroom
- Spotify: Raspotify (librespot, armhf)
- Webradio: MPD + myMPD Web-UI
- Multiroom: Snapcast (Server + Client)
- Steuerung: myMPD als PWA am Handy
Inhaltsverzeichnis
1.1 Benötigte Hardware
| Komponente | Hinweis |
|---|---|
| Raspberry Pi 2B | ARMv7, 1 GB RAM — ausreichend für reine Streaming-Aufgaben |
| HifiBerry DAC+ | DAC+ Standard / DAC+ Pro / DAC2 Pro — alle unterstützt |
| MicroSD-Karte | ≥ 8 GB, Class 10 (empfohlen: 16 GB SanDisk Endurance) |
| Netzwerk | Ethernet empfohlen für Multiroom-Stabilität; WLAN möglich |
| PC/Mac | Zum Flashen des Images und SSH-Zugriff |
| Spotify Premium | Pflicht für Spotify Connect über librespot |
1.2 DietPi Image herunterladen & flashen
Das korrekte Image für den Pi 2B ist DietPi_RPi-ARMv7-Bullseye.img.xz (32-Bit, armhf).
- Herunterladen: dietpi.com → Raspberry Pi → ARM 32-bit
- Image mit Balena Etcher auf die SD-Karte flashen
- SD-Karte nochmals einlegen und die Dateien im FAT-Bereich anpassen (vor dem ersten Boot):
# /boot/dietpi.txt — Voreinstellungen für headless-Betrieb: AUTO_SETUP_LOCALE=de_DE.UTF-8 AUTO_SETUP_TIMEZONE=Europe/Berlin AUTO_SETUP_NET_ETHERNET_ENABLED=1 AUTO_SETUP_NET_WIFI_ENABLED=0 # auf 1 setzen falls WLAN gewünscht AUTO_SETUP_SSH_SERVER_INDEX=-2 # OpenSSH (empfohlen) AUTO_SETUP_HEADLESS=1 AUTO_SETUP_AUTOMATED=1 AUTO_SETUP_GLOBAL_PASSWORD=dein_sicheres_passwort
# /boot/dietpi-wifi.txt — nur bei WLAN-Betrieb: aWIFI_SSID[0]='NetzwerkName' aWIFI_KEY[0]='WLAN-Passwort'
Headless-Betrieb: Mit AUTO_SETUP_AUTOMATED=1 läuft die Erstinstallation vollständig automatisch durch. Kein Monitor nötig — der Pi ist nach 3–5 Minuten per SSH erreichbar.
- SD-Karte einsetzen, Netzteil anschließen, 3–5 Minuten warten
- SSH-Verbindung herstellen (IP aus dem Router-Interface ablesen):
ssh root@192.168.x.xxx # Passwort: dein_sicheres_passwort
===== 2. HifiBerry DAC konfigurieren ===== hifiberry
2.1 Kernel-Overlay aktivieren
Variante A: DietPi-Config (empfohlen)
dietpi-config # → Audio Options → Sound Card → hifiberry-dacplus auswählen # → Reboot bestätigen
Variante B: Manuell in /boot/config.txt
# Vorhandene audio-Zeile auskommentieren: #dtparam=audio=on # Je nach DAC-Modell eine der folgenden Zeilen hinzufügen: dtoverlay=hifiberry-dac # DAC+ Standard / DAC+ Light dtoverlay=hifiberry-dacplus # DAC+ Pro dtoverlay=hifiberry-dacplus-pro # DAC2 Pro
2.2 Audio-Ausgabe verifizieren
# Nach Reboot: ALSA-Geräte auflisten aplay -l # Erwartete Ausgabe (Beispiel DAC+ Pro): # card 0: sndrpihifiberry [snd_rpi_hifiberry_dacplus], ... # Subdevice #0: subdevice #0 # Testton abspielen (Ctrl+C zum Stoppen): speaker-test -D plughw:0 -c 2 -t sine
2.3 ALSA Default-Device setzen
nano /etc/asound.conf
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
Audiophiler Hinweis: type hw statt type plughw erzwingt direkten Hardware-Zugriff ohne Software-Resampling. Optimal für den Kenwood HD 1000, setzt aber voraus dass alle Anwendungen das native DAC-Format unterstützen (44100/48000 Hz, S32_LE) — was Raspotify und MPD beide problemlos tun.
===== 3. Spotify Connect mit Raspotify ===== spotify
3.1 Installation
Raspotify verpackt librespot als systemd-Service mit nativem armhf-Binary für den Pi 2B.
# Einzeiliges Installations-Script (fügt das Raspotify-APT-Repo hinzu): sudo apt-get -y install curl && \ curl -sL https://dtcooper.github.io/raspotify/install.sh | sh
Das Script fügt automatisch das signierte Raspotify-Repository ein und installiert das aktuellste armhf-Paket. ARMv7 (Pi 2B) ist vollständig kompatibel.
3.2 Konfiguration
nano /etc/raspotify/conf
# ── Gerätename (erscheint in der Spotify-App) ────────────────── LIBRESPOT_NAME='HifiBerry-Streamer' # ── Audioqualität ────────────────────────────────────────────── LIBRESPOT_BITRATE='320' # ── ALSA-Device explizit auf HifiBerry setzen ────────────────── LIBRESPOT_BACKEND='alsa' LIBRESPOT_DEVICE='hw:0,0' # ── Audiophile Optionen ──────────────────────────────────────── LIBRESPOT_VOLUME_NORMALISATION='' # leer = deaktiviert LIBRESPOT_DITHERING='none' # kein Dithering bei 32-Bit-DAC LIBRESPOT_FORMAT='S32' # 32-Bit-Output für DAC+ Pro # ── Zeroconf-Port fixieren (verhindert random port bei Restart) ─ LIBRESPOT_ZEROCONF_PORT='44677' # ── Device-Typ (erscheint als Icon in Spotify) ───────────────── LIBRESPOT_DEVICE_TYPE='avr'
3.3 Service starten und aktivieren
systemctl restart raspotify systemctl enable raspotify systemctl status raspotify # Sollte 'active (running)' zeigen # Log bei Problemen: journalctl -u raspotify -f
Nach dem Neustart erscheint HifiBerry-Streamer in der Spotify-App unter Geräte. Wiedergabe starten — fertig. Die Lautstärke wird über die Spotify-App oder die Hifi-Anlage direkt geregelt.
===== 4. Webradio mit MPD ===== mpd
4.1 MPD installieren
apt-get install -y mpd mpc
4.2 MPD konfigurieren
nano /etc/mpd.conf
# ── Grundeinstellungen ─────────────────────────────────────────
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/database"
log_file "/var/log/mpd/mpd.log"
pid_file "/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_database "/var/lib/mpd/sticker.sql"
user "mpd"
bind_to_address "localhost"
port "6600"
# ── Audio-Output: direkt auf HifiBerry ────────────────────────
audio_output {
type "alsa"
name "HifiBerry DAC"
device "hw:0,0"
format "*:*:*"
mixer_type "software"
}
# ── Logging ────────────────────────────────────────────────────
log_level "default"
auto_update "no"
systemctl restart mpd
systemctl enable mpd
4.3 Radio Bob als Stream einrichten
# Playlist-Verzeichnis ist bereits vorhanden, Playlist anlegen: nano /var/lib/mpd/playlists/RadioBob.m3u
#EXTM3U #EXTINF:-1,Radio BOB! (MP3 192k – empfohlen) https://stream.radiobob.de/bob-live/mp3-192/direkteinstieg #EXTINF:-1,Radio BOB! (AAC 128k – Fallback) https://stream.radiobob.de/bob-live/aac-128/direkteinstieg
# Datenbank aktualisieren und Testlauf: mpc update mpc load RadioBob mpc play # Status prüfen: mpc status mpc current
Die Stream-URLs können sich ändern. Aktuelle URLs immer unter radiobob.de/empfang/stream prüfen.
===== 5. Web-UI mit myMPD (PWA) ===== mympd
5.1 Warum myMPD?
myMPD ist in C geschrieben, läuft als eigenständiger Webserver (kein Apache/nginx nötig), ist als Progressive Web App (PWA) auf dem Smartphone installierbar und benötigt minimale Ressourcen — ideal für den Pi 2B.
| Feature | Beschreibung |
|---|---|
| PWA | Zum Home-Screen hinzufügbar — wirkt wie eine native App |
| Standalone-Server | Port 80/443, kein Apache/nginx nötig |
| Mobile-optimiert | Responsive Design, Touch-freundlich |
| Ressourcenschonend | Backend in C, kein Node.js / PHP |
| Webradio-Verwaltung | Streams direkt im UI hinzufügen |
| Aktiv gepflegt | Regelmäßige Releases, armhf-Pakete vorhanden |
5.2 myMPD installieren
# Abhängigkeiten: apt-get install -y libid3tag0 libflac8 liblua5.4-0 # GPG-Key und Repository einbinden: curl -fsSL https://jcorporation.github.io/myMPD/packages/gpg.key \ | gpg --dearmor -o /usr/share/keyrings/mympd-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/mympd-archive-keyring.gpg] \ https://jcorporation.github.io/myMPD/packages/debian bullseye main" \ > /etc/apt/sources.list.d/mympd.list apt-get update && apt-get install -y mympd
5.3 Service starten
systemctl enable mympd systemctl start mympd # Aufruf im Browser: # http://192.168.x.xxx
Beim ersten Aufruf erscheint der Setup-Assistent. Wichtige Einstellungen:
- MPD-Host:
localhost, Port:6600 - Music directory:
/var/lib/mpd/music - Playlist directory:
/var/lib/mpd/playlists - Settings → Theme: Dark Mode für Wohnzimmer-Nutzung empfohlen
5.4 Als PWA auf dem Smartphone installieren
Android (Chrome / Edge):
- Browser-Menü öffnen → „Zum Startbildschirm hinzufügen„
- myMPD öffnet sich danach als Vollbild-App ohne Browser-Chrome
iOS (Safari):
- Teilen-Symbol → „Zum Home-Bildschirm“
- Hinweis: Nur Safari unterstützt PWA-Installation auf iOS
5.5 Radio Bob in myMPD einbinden
- Browse → Webradio
- „Add stream„ → URL:
https://stream.radiobob.de/bob-live/mp3-192/direkteinstieg - Name:
Radio BOB!, Genre:Rock, Land:Deutschland - Alternativ: myMPD unterstützt den direkten Import der RadioBrowser-Community-Datenbank im UI
myMPD ist der einzige Einstiegspunkt für Webradio und Playlist-Steuerung am Handy. Spotify läuft parallel und unabhängig über Raspotify — beide teilen sich nur den DAC (nicht gleichzeitig, s. Abschnitt 7).
===== 6. Multiroom mit Snapcast ===== snapcast
6.1 Konzept
Snapcast ermöglicht zeitsynchrone Wiedergabe auf mehreren Geräten. Der Pi 2B läuft als Server und gleichzeitig als Client. Weitere Räume erhalten einen eigenen Pi als Snapcast-Client.
| Snapcast Server (dieser Pi 2B) | Snapcast Client(s) |
|---|---|
| Empfängt Audio von MPD via named pipe | Beliebige weitere Linux-Geräte / Pis im Netzwerk |
| Verteilt den Stream mit Timing-Informationen | Verbinden sich mit dem Server, spielen zeitsynchron ab |
6.2 Snapcast installieren
apt-get install -y snapserver snapclient
6.3 MPD für Snapcast — Named Pipe anlegen
# Named Pipe erstellen: mkfifo /tmp/snapfifo chown mpd:audio /tmp/snapfifo
FIFO-Output in /etc/mpd.conf ergänzen (zusätzlich zum bestehenden ALSA-Output):
audio_output {
type "fifo"
name "Snapcast Pipe"
path "/tmp/snapfifo"
format "48000:16:2"
mixer_type "software"
}
6.4 Snapserver konfigurieren
nano /etc/snapserver.conf
[stream] source = pipe:///tmp/snapfifo?name=MPD&sampleformat=48000:16:2&codec=flac [server] # Web-UI auf Port 1780 (optional, für Lautstärke-Anpassung pro Client)
systemctl restart snapserver snapclient
systemctl enable snapserver snapclient
systemctl status snapserver
6.5 Snapcast-Clients in weiteren Räumen
Auf jedem weiteren Gerät (z. B. Raspberry Pi Zero 2 W, Pi 3/4):
apt-get install -y snapclient nano /etc/default/snapclient # START_SNAPCLIENT=true # SNAPCLIENT_OPTS="--host 192.168.x.xxx" ← IP des Pi 2B systemctl enable snapclient systemctl start snapclient
Snapcast bietet eine eigene Web-UI auf Port 1780 (http://192.168.x.xxx:1780) zur Anpassung der Client-Lautstärken und Latenz-Delays. myMPD steuert die Wiedergabe selbst — Snapcast übernimmt nur die Verteilung.
===== 7. Zusammenspiel & Signalfluss ===== zusammenspiel
7.1 Signalfluss
┌─────────────────────────────────────────────────────────────────┐ │ Spotify App (Smartphone / PC) │ │ └─→ Raspotify (librespot) ──→ ALSA hw:0,0 │ │ └─→ HifiBerry DAC+ │ │ └─→ Kenwood HD 1000│ ├─────────────────────────────────────────────────────────────────┤ │ myMPD Web-UI (Browser / PWA) │ │ └─→ MPD ──→ ALSA hw:0,0 ──→ HifiBerry DAC+ → Kenwood │ │ └─→ FIFO /tmp/snapfifo │ │ └─→ Snapcast Server │ │ └─→ Snapcast Client(s) → Räume │ └─────────────────────────────────────────────────────────────────┘
7.2 ALSA-Konflikt zwischen Raspotify und MPD
Wichtig: Raspotify und MPD können nicht gleichzeitig auf hw:0,0 zugreifen. Wenn Spotify aktiv ist, muss MPD gestoppt sein — und umgekehrt. Für audiophilen Betrieb ist das die saubere Lösung: immer nur eine Quelle aktiv.
7.3 Optionale dmix-Lösung (Klangkompromiss)
Falls gleichzeitiger Zugriff dennoch gewünscht ist, kann ALSA-dmix als Software-Mixer dienen. Dies wird für audiophile Ansprüche nicht empfohlen, da es Software-Resampling einführt:
# /etc/asound.conf (dmix-Variante — nur falls unbedingt nötig):
pcm.dmixed {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
rate 48000
format S32_LE
period_size 1024
buffer_size 8192
}
}
pcm.!default {
type plug
slave.pcm dmixed
}
===== 8. Autostart, Updates & Wartung ===== wartung
8.1 Alle Services auf Autostart setzen
systemctl enable raspotify mpd mympd snapserver snapclient # Gesamtüberblick aller Service-Status: systemctl status raspotify mpd mympd snapserver snapclient
8.2 Statische IP vergeben
# Über DietPi-Config (empfohlen): dietpi-config → Network Options → Ethernet → Static # Oder manuell /etc/network/interfaces: auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 8.8.8.8
8.3 Updates einspielen
# DietPi-eigenes Update-System: dietpi-update # System-Pakete (Raspotify, MPD, myMPD): apt-get update && apt-get upgrade -y # Nur Raspotify updaten: apt-get install --only-upgrade raspotify
8.4 Nützliche Diagnosebefehle
# ALSA-Gerätebelegung prüfen (wer blockiert hw:0,0?): fuser /dev/snd/* # MPD-Logs live verfolgen: tail -f /var/log/mpd/mpd.log # Snapcast-Verbindungen prüfen: journalctl -u snapserver -f # Aktuell spielenden Titel anzeigen: mpc current # Systemressourcen (CPU/RAM): htop
===== 9. Quick Reference — Ports & URLs ===== referenz
| Service | Port | URL / Zweck |
|---|---|---|
| myMPD Web-UI | 80 / 443 | http://192.168.x.xxx — Hauptsteuerung (PWA) |
| Snapcast Web-UI | 1780 | http://192.168.x.xxx:1780 — Multiroom-Pegel |
| MPD | 6600 | localhost only — via myMPD oder mpc |
| Raspotify (Zeroconf) | 44677 | Spotify-Connect-Discovery (intern) |
| SSH | 22 | ssh root@192.168.x.xxx |
===== 10. Fehlerbehebung ===== fehler
Spotify Connect-Gerät erscheint nicht
systemctl status raspotify journalctl -u raspotify -n 50 # Zeroconf / mDNS sicherstellen: apt-get install -y avahi-daemon systemctl enable avahi-daemon && systemctl start avahi-daemon
Kein Ton / ALSA-Fehler
# Wer blockiert den DAC? fuser /dev/snd/* # ALSA-Konfiguration direkt testen: aplay -D hw:0,0 /usr/share/sounds/alsa/Front_Center.wav # HifiBerry-Overlay aktiv? dtoverlay -l
MPD startet nicht
# Berechtigungen reparieren: chown -R mpd:audio /var/lib/mpd chmod 750 /var/lib/mpd # Named Pipe neu anlegen: rm -f /tmp/snapfifo mkfifo /tmp/snapfifo chown mpd:audio /tmp/snapfifo
Radio Bob streamt nicht
# Stream-URL direkt testen: mpc add https://stream.radiobob.de/bob-live/mp3-192/direkteinstieg mpc play mpc status # Internetverbindung prüfen: ping radiobob.de -c 4
Aktuelle Stream-URLs von Radio Bob immer unter radiobob.de/empfang/stream prüfen.
Weiterführende Links
DietPi Forum | Raspotify auf GitHub | myMPD Dokumentation | Snapcast auf GitHub
Erstellt für: Raspberry Pi 2B + HifiBerry DAC+ → Kenwood HD 1000 · DietPi armhf (Bullseye) · Stand: 2025

