| FOTO | AUTO | EDV | AUDIO |

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. Vorbereitung & DietPi-Installation

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).

  1. Herunterladen: dietpi.com → Raspberry Pi → ARM 32-bit
  2. Image mit Balena Etcher auf die SD-Karte flashen
  3. 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.

  1. SD-Karte einsetzen, Netzteil anschließen, 3–5 Minuten warten
  2. SSH-Verbindung herstellen (IP aus dem Router-Interface ablesen):
ssh root@192.168.x.xxx    # Passwort: dein_sicheres_passwort

2. HifiBerry DAC konfigurieren

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

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

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)

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):

  1. Browser-Menü öffnen → „Zum Startbildschirm hinzufügen„
  2. myMPD öffnet sich danach als Vollbild-App ohne Browser-Chrome

iOS (Safari):

  1. Teilen-Symbol → „Zum Home-Bildschirm“
  2. Hinweis: Nur Safari unterstützt PWA-Installation auf iOS

5.5 Radio Bob in myMPD einbinden

  1. Browse → Webradio
  2. „Add stream„ → URL: https://stream.radiobob.de/bob-live/mp3-192/direkteinstieg
  3. Name: Radio BOB!, Genre: Rock, Land: Deutschland
  4. 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

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

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

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

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

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.



Erstellt für: Raspberry Pi 2B + HifiBerry DAC+ → Kenwood HD 1000 · DietPi armhf (Bullseye) · Stand: 2025