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

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



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