Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| audio:stream:start [02 38 2026 15 : 38] – [7.3 Optionale dmix-Lösung (Klangkompromiss)] André Reichert-Creutz | audio:stream:start [02 00 2026 17 : 00] (aktuell) – André Reichert-Creutz | ||
|---|---|---|---|
| Zeile 15: | Zeile 15: | ||
| <WRAP important> | <WRAP important> | ||
| - | **Hinweis Debian Trixie (13):** Diese Anleitung wurde für DietPi | + | **Getestet auf:** Raspberry Pi 2B v1.1 + HifiBerry DAC+ → Kenwood HD 1000 · DietPi |
| + | |||
| + | Einige Paketnamen | ||
| </ | </ | ||
| Zeile 123: | Zeile 125: | ||
| </ | </ | ||
| - | Die Ausgabe erscheint direkt vor dem Prompt, z. B.: '' | + | <WRAP tip> |
| + | Die Ausgabe erscheint direkt vor dem Prompt | ||
| + | </ | ||
| |< 100% 25% 35% 40% >| | |< 100% 25% 35% 40% >| | ||
| Zeile 139: | Zeile 143: | ||
| dietpi-config | dietpi-config | ||
| # → Audio Options → Sound Card | # → Audio Options → Sound Card | ||
| - | # → Passendes Modell auswählen (z. B. hifiberry-dacplus-std) | + | # → Passendes Modell auswählen (z. B. hifiberry-dacplus-std |
| # → Reboot bestätigen | # → Reboot bestätigen | ||
| </ | </ | ||
| Zeile 168: | Zeile 172: | ||
| <WRAP tip> | <WRAP tip> | ||
| - | Falls kein Ton kommt: Lautstärkeregler mit '' | + | Falls kein Ton kommt: Lautstärkeregler mit '' |
| </ | </ | ||
| Zeile 190: | Zeile 194: | ||
| <WRAP important> | <WRAP important> | ||
| - | **Audiophiler Hinweis:** '' | + | **Audiophiler Hinweis:** '' |
| </ | </ | ||
| Zeile 200: | Zeile 204: | ||
| | Auto-conversion | Off | Erhält bit-perfekte Qualität | | | Auto-conversion | Off | Erhält bit-perfekte Qualität | | ||
| | PSU noise reduction | On | Minimiert elektrische Interferenzen | | | PSU noise reduction | On | Minimiert elektrische Interferenzen | | ||
| + | | DietPi-JustBoom | — | Ignorieren, nur für JustBoom-Karten | | ||
| ---- | ---- | ||
| Zeile 207: | Zeile 212: | ||
| ==== 3.1 Installation über dietpi-software ==== | ==== 3.1 Installation über dietpi-software ==== | ||
| - | Auf Debian | + | <WRAP important> |
| + | **Trixie-Hinweis:** Das offizielle Raspotify-Installations-Script | ||
| + | </ | ||
| <code bash> | <code bash> | ||
| Zeile 215: | Zeile 222: | ||
| </ | </ | ||
| - | <WRAP info> | + | DietPi |
| - | '' | + | |
| - | </ | + | |
| ==== 3.2 Konfiguration ==== | ==== 3.2 Konfiguration ==== | ||
| Zeile 239: | Zeile 244: | ||
| LIBRESPOT_VOLUME_NORMALISATION='' | LIBRESPOT_VOLUME_NORMALISATION='' | ||
| LIBRESPOT_DITHERING=' | LIBRESPOT_DITHERING=' | ||
| - | LIBRESPOT_FORMAT=' | + | LIBRESPOT_FORMAT=' |
| # ── Zeroconf-Port fixieren (verhindert random port bei Restart) ─ | # ── Zeroconf-Port fixieren (verhindert random port bei Restart) ─ | ||
| Zeile 260: | Zeile 265: | ||
| <WRAP tip> | <WRAP tip> | ||
| - | Nach dem Neustart erscheint **Office UG** in der Spotify-App unter Geräte. Falls der alte Name noch erscheint: Spotify-App schließen, neu öffnen — der Cache aktualisiert sich nach ca. 10 Sekunden. Lautstärke über die Hifi-Anlage direkt regeln; LIBRESPOT_VOLUME_NORMALISATION ist bewusst deaktiviert. | + | Nach dem Neustart erscheint **Office UG** in der Spotify-App unter Geräte. Falls der alte Name noch erscheint: Spotify-App |
| </ | </ | ||
| Zeile 272: | Zeile 277: | ||
| apt-get install -y mpd mpc | apt-get install -y mpd mpc | ||
| </ | </ | ||
| + | |||
| + | Die Abhängigkeitsliste ist auf Trixie sehr lang — einfach mit '' | ||
| ==== 4.2 MPD konfigurieren ==== | ==== 4.2 MPD konfigurieren ==== | ||
| Zeile 287: | Zeile 294: | ||
| pid_file | pid_file | ||
| state_file | state_file | ||
| - | sticker_database | ||
| user " | user " | ||
| bind_to_address | bind_to_address | ||
| Zeile 305: | Zeile 311: | ||
| auto_update | auto_update | ||
| </ | </ | ||
| + | |||
| + | <WRAP important> | ||
| + | **Trixie-Hinweis: | ||
| + | </ | ||
| + | |||
| + | ==== 4.3 Datenbankverzeichnis anlegen (Trixie) ==== | ||
| + | |||
| + | <WRAP important> | ||
| + | **Trixie-spezifisch: | ||
| + | </ | ||
| <code bash> | <code bash> | ||
| + | mkdir -p / | ||
| + | chown -R mpd:audio / | ||
| systemctl restart mpd | systemctl restart mpd | ||
| systemctl enable mpd | systemctl enable mpd | ||
| + | systemctl status mpd # Sollte ' | ||
| </ | </ | ||
| - | ==== 4.3 Radio Bob als Stream | + | ==== 4.4 Radio Bob Streams |
| + | |||
| + | Jeder Sender bekommt eine eigene Playlist-Datei — so lassen sie sich in myMPD direkt per Tipp auswählen. | ||
| <code bash> | <code bash> | ||
| - | nano / | + | nano / |
| + | </ | ||
| + | < | ||
| + | #EXTM3U | ||
| + | # | ||
| + | http:// | ||
| </ | </ | ||
| + | <code bash> | ||
| + | nano / | ||
| + | </ | ||
| < | < | ||
| #EXTM3U | #EXTM3U | ||
| - | # | + | # |
| - | https://stream.radiobob.de/ | + | http://streams.radiobob.de/ |
| - | # | + | </ |
| - | https://stream.radiobob.de/ | + | |
| + | <code bash> | ||
| + | nano / | ||
| + | </ | ||
| + | < | ||
| + | #EXTM3U | ||
| + | # | ||
| + | http://streams.radiobob.de/ | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | nano / | ||
| + | </ | ||
| + | < | ||
| + | #EXTM3U | ||
| + | # | ||
| + | https:// | ||
| </ | </ | ||
| Zeile 328: | Zeile 373: | ||
| # Datenbank aktualisieren und Testlauf: | # Datenbank aktualisieren und Testlauf: | ||
| mpc update | mpc update | ||
| - | mpc load RadioBob | + | mpc clear |
| + | mpc load BOB-Grunge | ||
| mpc play | mpc play | ||
| - | + | mpc status | |
| - | # Status prüfen: | + | |
| - | mpc status | + | |
| - | mpc current | + | |
| </ | </ | ||
| <WRAP info> | <WRAP info> | ||
| - | Die Stream-URLs können sich ändern. Aktuelle | + | Aktuelle |
| </ | </ | ||
| Zeile 346: | Zeile 389: | ||
| ==== 5.1 Warum myMPD? ==== | ==== 5.1 Warum myMPD? ==== | ||
| - | myMPD ist in C geschrieben, | + | myMPD ist in C geschrieben, |
| |< 100% 30% 70% >| | |< 100% 30% 70% >| | ||
| ^ Feature ^ Beschreibung ^ | ^ Feature ^ Beschreibung ^ | ||
| | PWA | Zum Home-Screen hinzufügbar — wirkt wie eine native App | | | PWA | Zum Home-Screen hinzufügbar — wirkt wie eine native App | | ||
| - | | Standalone-Server | Port 80/443, kein Apache/ | + | | Standalone-Server | Ports 8080/8443, kein Apache/ |
| | Mobile-optimiert | Responsive Design, Touch-freundlich | | | Mobile-optimiert | Responsive Design, Touch-freundlich | | ||
| | Ressourcenschonend | Backend in C, kein Node.js / PHP | | | Ressourcenschonend | Backend in C, kein Node.js / PHP | | ||
| Zeile 357: | Zeile 400: | ||
| | Aktiv gepflegt | Regelmäßige Releases, armhf-Pakete vorhanden | | | Aktiv gepflegt | Regelmäßige Releases, armhf-Pakete vorhanden | | ||
| - | ==== 5.2 myMPD installieren (Trixie-angepasst) ==== | + | ==== 5.2 myMPD installieren (Trixie) ==== |
| <WRAP important> | <WRAP important> | ||
| - | **Trixie-Hinweis: | + | **Trixie-Hinweis: |
| </ | </ | ||
| <code bash> | <code bash> | ||
| - | # Abhängigkeiten (Trixie-Paketnamen): | + | dietpi-software |
| - | apt-get install -y libid3tag0 libflac12t64 liblua5.4-0 | + | # → Browse Software → myMPD (ID 183) |
| - | + | # → Mit Leertaste auswählen → Install | |
| - | # GPG-Key und Repository einbinden | + | |
| - | curl -fsSL https:// | + | |
| - | | gpg --dearmor -o / | + | |
| - | + | ||
| - | echo "deb [signed-by=/ | + | |
| - | https:// | + | |
| - | > / | + | |
| - | + | ||
| - | apt-get update && apt-get install -y mympd | + | |
| </ | </ | ||
| + | |||
| + | DietPi löst alle Abhängigkeiten automatisch auf. Pakete wie '' | ||
| ==== 5.3 Service starten ==== | ==== 5.3 Service starten ==== | ||
| Zeile 384: | Zeile 420: | ||
| systemctl start mympd | systemctl start mympd | ||
| systemctl status mympd # Sollte ' | systemctl status mympd # Sollte ' | ||
| + | </ | ||
| - | # Aufruf im Browser: | + | myMPD läuft auf folgenden Ports: |
| - | # http:// | + | |
| + | |< 100% 15% 85% >| | ||
| + | ^ Port ^ Verwendung ^ | ||
| + | | 8080 | HTTP — funktioniert, | ||
| + | | 8443 | HTTPS — empfohlen, einmalig Sicherheitswarnung akzeptieren | | ||
| + | |||
| + | Aufruf im Browser: | ||
| + | < | ||
| + | https:// | ||
| </ | </ | ||
| - | Beim ersten Aufruf | + | <WRAP tip> |
| + | Sicherheitswarnung beim ersten Aufruf | ||
| + | </ | ||
| + | |||
| + | ==== 5.4 Erste Einrichtung ==== | ||
| + | |||
| + | myMPD verbindet sich nach der Installation via '' | ||
| + | |||
| + | Die **myMPD-Startseite** ist zunächst leer. Schnellzugriff-Icons hinzufügen: | ||
| + | |||
| + | - Browse → **Playlists** → '' | ||
| + | - Kontextmenü (drei Punkte) → **„Zum Startbildschirm hinzufügen" | ||
| + | - Dasselbe für '' | ||
| + | |||
| + | Einen Stream starten: | ||
| - | | + | - Browse → Playlists → gewünschten Sender antippen |
| - | * **Music directory:** ''/ | + | |
| - | * **Playlist directory: | + | |
| - | * Settings | + | |
| - | ==== 5.4 Als PWA auf dem Smartphone installieren ==== | + | ==== 5.5 Als PWA auf dem Smartphone installieren ==== |
| === Android (Chrome / Edge): === | === Android (Chrome / Edge): === | ||
| - | - Browser-Menü | + | - '' |
| + | - Sicherheitswarnung einmalig akzeptieren | ||
| + | - Drei-Punkte-Menü → **„Zum Startbildschirm hinzufügen" | ||
| - myMPD öffnet sich danach als Vollbild-App ohne Browser-Chrome | - myMPD öffnet sich danach als Vollbild-App ohne Browser-Chrome | ||
| === iOS (Safari): === | === iOS (Safari): === | ||
| + | - '' | ||
| - Teilen-Symbol → **„Zum Home-Bildschirm" | - Teilen-Symbol → **„Zum Home-Bildschirm" | ||
| - Hinweis: Nur Safari unterstützt PWA-Installation auf iOS | - Hinweis: Nur Safari unterstützt PWA-Installation auf iOS | ||
| - | |||
| - | ==== 5.5 Radio Bob in myMPD einbinden ==== | ||
| - | |||
| - | - Browse → **Webradio** | ||
| - | - „Add stream" | ||
| - | - Name: '' | ||
| - | - Alternativ: myMPD unterstützt den direkten Import der **RadioBrowser-Community-Datenbank** im UI | ||
| - | |||
| - | <WRAP tip> | ||
| - | 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, | ||
| - | </ | ||
| ---- | ---- | ||
| Zeile 520: | Zeile 569: | ||
| <WRAP alert> | <WRAP alert> | ||
| **Wichtig: | **Wichtig: | ||
| - | |||
| - | Zum manuellen Stoppen: '' | ||
| </ | </ | ||
| ==== 7.3 Optionale dmix-Lösung (Klangkompromiss) ==== | ==== 7.3 Optionale dmix-Lösung (Klangkompromiss) ==== | ||
| - | Falls gleichzeitiger Zugriff dennoch gewünscht ist, kann ALSA-dmix als Software-Mixer dienen. | + | Falls gleichzeitiger Zugriff dennoch gewünscht ist, kann ALSA-dmix als Software-Mixer dienen. |
| < | < | ||
| Zeile 547: | Zeile 594: | ||
| </ | </ | ||
| - | ---- | ||
| ==== 7.4 Wechsel zwischen Spotify und Webradio ==== | ==== 7.4 Wechsel zwischen Spotify und Webradio ==== | ||
| - | === Von Spotify → Webradio (myMPD) === | + | === Von Spotify → Webradio (myMPD): === |
| - | - In der Spotify-App die Wiedergabe **pausieren** | + | - In der Spotify-App die Wiedergabe **pausieren** |
| - | - Kurz warten bis Raspotify den DAC freigibt | + | - Ca. 3–5 Sekunden |
| - | - Im myMPD-Browser Radio Bob starten | + | - In myMPD den gewünschten Stream |
| <code bash> | <code bash> | ||
| - | # Falls myMPD nicht startet: Spotify-Prozess | + | # Falls myMPD den DAC nicht bekommt — Raspotify |
| systemctl stop raspotify | systemctl stop raspotify | ||
| + | mpc clear | ||
| + | mpc load BOB-Grunge | ||
| mpc play | mpc play | ||
| - | # Raspotify danach wieder | + | # Raspotify danach wieder |
| systemctl start raspotify | systemctl start raspotify | ||
| </ | </ | ||
| - | === Von Webradio (myMPD) → Spotify === | + | === Von Webradio (myMPD) → Spotify: === |
| - | - In myMPD auf **Stop** drücken (Pause reicht | + | - In myMPD auf **Stop** drücken (nicht |
| - In der Spotify-App auf „Office UG" als Ausgabegerät tippen | - In der Spotify-App auf „Office UG" als Ausgabegerät tippen | ||
| - Wiedergabe starten | - Wiedergabe starten | ||
| <code bash> | <code bash> | ||
| - | # Falls Spotify den DAC nicht bekommt: MPD manuell stoppen: | + | # Falls Spotify den DAC nicht bekommt |
| mpc stop | mpc stop | ||
| # Spotify-App neu verbinden | # Spotify-App neu verbinden | ||
| Zeile 575: | Zeile 623: | ||
| <WRAP tip> | <WRAP tip> | ||
| - | **Faustregel: | + | **Faustregel: |
| </ | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| ===== 8. Autostart, Updates & Wartung ===== | ===== 8. Autostart, Updates & Wartung ===== | ||
| Zeile 582: | Zeile 633: | ||
| <code bash> | <code bash> | ||
| - | systemctl enable raspotify mpd mympd snapserver snapclient | + | systemctl enable raspotify mpd mympd |
| + | |||
| + | # Bei installiertem Snapcast zusätzlich: | ||
| + | systemctl enable | ||
| # Gesamtüberblick aller Service-Status: | # Gesamtüberblick aller Service-Status: | ||
| - | systemctl status raspotify mpd mympd snapserver snapclient | + | systemctl status raspotify mpd mympd |
| </ | </ | ||
| Zeile 610: | Zeile 664: | ||
| dietpi-update | dietpi-update | ||
| - | # System-Pakete (MPD, myMPD, Snapcast): | + | # System-Pakete (MPD, Snapcast): |
| apt-get update && apt-get upgrade -y | apt-get update && apt-get upgrade -y | ||
| - | # Raspotify | + | # Raspotify |
| - | dietpi-software reinstall 170 | + | dietpi-software reinstall 170 # Raspotify |
| + | dietpi-software reinstall 183 # myMPD | ||
| </ | </ | ||
| + | |||
| + | <WRAP tip> | ||
| + | Die Konfigurationsdateien bleiben bei '' | ||
| + | </ | ||
| ==== 8.4 Nützliche Diagnosebefehle ==== | ==== 8.4 Nützliche Diagnosebefehle ==== | ||
| <code bash> | <code bash> | ||
| - | # ALSA-Gerätebelegung prüfen (wer blockiert hw:0,0?): | ||
| - | fuser /dev/snd/* | ||
| - | |||
| # Lautstärkeregler prüfen und anpassen: | # Lautstärkeregler prüfen und anpassen: | ||
| alsamixer | alsamixer | ||
| + | |||
| + | # ALSA-Gerätebelegung prüfen (wer blockiert hw:0,0?): | ||
| + | fuser /dev/snd/* | ||
| # MPD-Logs live verfolgen: | # MPD-Logs live verfolgen: | ||
| Zeile 635: | Zeile 694: | ||
| mpc current | mpc current | ||
| - | # Systemressourcen (CPU/RAM): | + | # Systemressourcen (CPU/ |
| htop | htop | ||
| </ | </ | ||
| Zeile 643: | Zeile 702: | ||
| ===== 9. Quick Reference — Ports & URLs ===== | ===== 9. Quick Reference — Ports & URLs ===== | ||
| - | |< 100% 28% 15% 57% >| | + | |< 100% 30% 15% 55% >| |
| ^ Service ^ Port ^ URL / Zweck ^ | ^ Service ^ Port ^ URL / Zweck ^ | ||
| - | | **myMPD Web-UI** | 80 / 443 | '' | + | | **myMPD Web-UI |
| + | | **myMPD Web-UI (HTTP)** | 8080 | '' | ||
| | **Snapcast Web-UI** | 1780 | '' | | **Snapcast Web-UI** | 1780 | '' | ||
| | MPD | 6600 | localhost only — via myMPD oder '' | | MPD | 6600 | localhost only — via myMPD oder '' | ||
| Zeile 682: | Zeile 742: | ||
| </ | </ | ||
| - | ==== MPD startet nicht ==== | + | ==== MPD startet nicht — exit-code Fehler ==== |
| + | |||
| + | <code bash> | ||
| + | # Detaillierte Fehlerausgabe: | ||
| + | journalctl -xeu mpd.service | ||
| + | |||
| + | # Häufigste Ursache auf Trixie: sticker_database noch in mpd.conf | ||
| + | # → Zeile entfernen: | ||
| + | nano / | ||
| + | # sticker_database | ||
| + | |||
| + | # Zweithäufigste Ursache: Datenbankverzeichnis fehlt | ||
| + | mkdir -p / | ||
| + | chown -R mpd:audio / | ||
| + | |||
| + | systemctl restart mpd | ||
| + | </ | ||
| + | |||
| + | ==== MPD startet nicht — Berechtigungsfehler | ||
| <code bash> | <code bash> | ||
| - | # Berechtigungen reparieren: | ||
| chown -R mpd:audio / | chown -R mpd:audio / | ||
| chmod 750 / | chmod 750 / | ||
| - | # Named Pipe neu anlegen: | + | # Named Pipe neu anlegen |
| rm -f / | rm -f / | ||
| mkfifo / | mkfifo / | ||
| chown mpd:audio / | chown mpd:audio / | ||
| + | |||
| + | systemctl restart mpd | ||
| </ | </ | ||
| Zeile 699: | Zeile 778: | ||
| <code bash> | <code bash> | ||
| # Stream-URL direkt testen: | # Stream-URL direkt testen: | ||
| - | mpc add https://stream.radiobob.de/ | + | mpc clear |
| + | mpc add http://streams.radiobob.de/ | ||
| mpc play | mpc play | ||
| mpc status | mpc status | ||
| Zeile 708: | Zeile 788: | ||
| <WRAP info> | <WRAP info> | ||
| - | Aktuelle Stream-URLs | + | Aktuelle Stream-URLs immer unter [[https:// |
| </ | </ | ||
| - | ==== myMPD-Installation schlägt fehl (Trixie) | + | ==== myMPD nicht erreichbar |
| <code bash> | <code bash> | ||
| - | # Prüfen welche libflac-Version verfügbar ist: | + | # Auf welchem Port läuft myMPD? |
| - | apt-cache search libflac | + | ss -tlnp | grep mympd |
| + | # → Ausgabe zeigt Port 8080 (HTTP) und 8443 (HTTPS) | ||
| - | # Falls libflac12t64 nicht gefunden wird: | + | # Aufruf im Browser: |
| - | apt-get update | + | # https:// |
| - | apt-get install -y libflac12t64 | + | # http:// |
| - | # Falls das bookworm-Repo nicht erreichbar ist — alternativ direkt | + | systemctl status mympd |
| - | # das .deb von GitHub laden: | + | journalctl |
| - | wget https:// | + | </ |
| - | dpkg -i mympd_armhf.deb | + | |
| - | apt-get install | + | ==== Warteschlange leer / kein Stream startet ==== |
| + | |||
| + | In myMPD muss die Playlist erst in die Warteschlange geladen werden: | ||
| + | |||
| + | | ||
| + | - Dann **Play** drücken | ||
| + | |||
| + | Oder per Kommandozeile: | ||
| + | |||
| + | <code bash> | ||
| + | mpc clear | ||
| + | mpc load BOB-Grunge | ||
| + | mpc play | ||
| </ | </ | ||
| - | ==== Raspotify Update | + | ==== Raspotify |
| <code bash> | <code bash> | ||
| - | # Nach einem System-Upgrade | + | # Nach einem System-Upgrade neu installieren: |
| - | dietpi-software reinstall 170 | + | dietpi-software reinstall 170 # Raspotify |
| + | dietpi-software reinstall 183 # myMPD | ||
| - | # Konfiguration | + | # Konfiguration |
| - | # / | + | cat / |
| + | ls / | ||
| </ | </ | ||
| Zeile 742: | Zeile 837: | ||
| <WRAP box round center 80%> | <WRAP box round center 80%> | ||
| **Weiterführende Links**\\ | **Weiterführende Links**\\ | ||
| - | [[https:// | + | [[https:// |
| </ | </ | ||
| ---- | ---- | ||
| //Getestet auf: Raspberry Pi 2B v1.1 + HifiBerry DAC+ → Kenwood HD 1000 · DietPi ARMv7 / Debian Trixie (13) · Stand: März 2026// | //Getestet auf: Raspberry Pi 2B v1.1 + HifiBerry DAC+ → Kenwood HD 1000 · DietPi ARMv7 / Debian Trixie (13) · Stand: März 2026// | ||
