# Windows Audio Setup für boWave ## Übersicht Diese Anleitung ermöglicht es, Audio vom boWave-System auf deinem Windows-PC abzuspielen, während alle virtuellen Boot-Zonen stumm bleiben. ## Voraussetzungen ### 1. Snapcast Client für Windows installieren ```powershell # Download von GitHub (aktuellste Version) # https://github.com/badaix/snapcast/releases/latest # Oder mit Scoop (falls installiert): scoop bucket add extras scoop install snapcast ``` **Manuelle Installation:** 1. Gehe zu https://github.com/badaix/snapcast/releases/latest 2. Lade `snapclient--win64.zip` herunter 3. Entpacke nach `C:\Program Files\Snapcast\` 4. Füge `C:\Program Files\Snapcast\bin` zu deinem PATH hinzu ## Setup-Schritte ### Schritt 1: Projekt starten ```powershell cd D:\coding\boWave make dev ``` Dies startet: - ✅ Snapserver (Multiroom Audio Server) auf Port 1704 - ✅ SignalK (NMEA Mock-Daten) - ✅ Mopidy (Musik-Player mit Mock-Playlist) - ✅ Dashboard mit HMR auf http://localhost:8090 - ✅ 4 virtuelle Boot-Zonen (Salon, Cockpit, Bug, Heck) - alle stumm (null output) ### Schritt 2: Windows Audio Client starten Öffne ein **neues PowerShell-Fenster** und führe aus: ```powershell snapclient --host localhost --port 1704 --hostID windows-pc --player wasapi ``` **Parameter Erklärung:** - `--host localhost` → verbindet sich mit dem Docker Snapserver - `--port 1704` → Standard Snapcast Port - `--hostID windows-pc` → Eindeutige Zone-ID (wird im Dashboard angezeigt) - `--player wasapi` → Windows Audio Session API (native Windows Audio) **Alternative für ältere Windows-Versionen:** ```powershell snapclient --host localhost --port 1704 --hostID windows-pc --player winmm ``` ### Schritt 3: Audio-Routing konfigurieren Öffne das Snapcast Web-Interface: **http://localhost:1780** 1. Du siehst jetzt 5 Zonen: - zone-salon (stumm) - zone-cockpit (stumm) - zone-bug (stumm) - zone-heck (stumm) - **windows-pc** (dein PC!) 2. Wähle die Zone **windows-pc** aus 3. Setze die Lautstärke auf 50-80% 4. Stelle sicher, dass die Zone **nicht** auf mute ist 3. Wähle den Audio-Stream (z.B. "Mopidy" für lokale Musik) ### Schritt 4: Musik abspielen **Option A: Mopidy Web-Interface** 1. Öffne http://localhost:6680/iris/ 2. Spiele einen Track ab 3. Audio sollte jetzt über deine Windows-Lautsprecher kommen! **Option B: Spotify Connect (nativ auf Windows)** In einem weiteren Terminal: ```powershell # Librespot für Windows installieren (falls noch nicht vorhanden) # Download: https://github.com/librespot-org/librespot/releases librespot --name "Bordanlage-Windows" --backend rodio ``` Dann öffne die Spotify-App und wähle "Bordanlage-Windows" als Ausgabegerät. ## Troubleshooting ### "snapclient: Befehl nicht gefunden" ```powershell # Prüfe ob Snapcast installiert ist: where.exe snapclient # Falls nicht gefunden, füge zum PATH hinzu (als Administrator): $env:Path += ";C:\Program Files\Snapcast\bin" ``` ### Kein Audio auf Windows 1. **Prüfe ob snapclient läuft:** ```powershell # In einem separaten Terminal sollte snapclient-Output sichtbar sein ``` 2. **Prüfe Snapserver-Logs:** ```powershell docker compose -f docker-compose.yml -f docker-compose.dev.yml logs snapserver ``` 3. **Prüfe Windows Audio Device:** - Rechtsklick auf Lautsprecher-Icon in Taskleiste - "Sound-Einstellungen öffnen" - Stelle sicher, dass das richtige Ausgabegerät ausgewählt ist ### Snapclient verbindet nicht ```powershell # Prüfe ob Port 1704 erreichbar ist: Test-NetConnection -ComputerName localhost -Port 1704 # Falls Docker Desktop verwendet wird, prüfe: docker ps | findstr snapserver ``` ### Audio stottert oder hat Aussetzer ```powershell # Erhöhe Buffer-Größe: snapclient --host localhost --port 1704 --hostID windows-pc --player wasapi --latency 500 ``` Der `--latency` Parameter ist in Millisekunden (Standard: 200ms). ## Permanente Konfiguration ### Automatischer Start mit Batch-Datei Erstelle `start-windows-audio.bat`: ```batch @echo off echo Starting Snapcast Windows Audio Client... snapclient --host localhost --port 1704 --hostID windows-pc --player wasapi --latency 300 pause ``` Doppelklick auf die Datei startet den Audio-Client. ### Windows-Dienst (fortgeschritten) Um snapclient als Windows-Dienst zu installieren (läuft automatisch im Hintergrund): ```powershell # Benötigt: NSSM (Non-Sucking Service Manager) scoop install nssm # Dienst erstellen: nssm install SnapcastClient "C:\Program Files\Snapcast\bin\snapclient.exe" nssm set SnapcastClient AppParameters "--host localhost --port 1704 --hostID windows-pc --player wasapi" nssm set SnapcastClient DisplayName "Snapcast Audio Client" nssm set SnapcastClient Start SERVICE_AUTO_START # Dienst starten: nssm start SnapcastClient ``` ## Make-Target Erweiterung (Optional) Für Komfort kannst du ein neues Make-Target hinzufügen: ```makefile # Im Makefile nach Zeile 52 einfügen: windows-audio: @echo "Starting Snapcast client → Windows speakers (zone: windows-pc)" @where snapclient > nul || (echo "Please install Snapcast from https://github.com/badaix/snapcast/releases" && exit 1) snapclient --host localhost --port 1704 --hostID windows-pc --player wasapi ``` Dann kannst du einfach `make windows-audio` ausführen. ## Zusammenfassung - ✅ **Mock-Daten aktiv**: SignalK sendet realistische NMEA 2000 Boot-Daten - ✅ **4 Boot-Zonen stumm**: Salon/Cockpit/Bug/Heck nutzen null-Player - ✅ **1 PC-Zone mit Audio**: windows-pc nutzt WASAPI für echten Sound - ✅ **Dashboard funktionsfähig**: http://localhost:8090 zeigt alle Zonen - ✅ **Alle Services laufen in Docker**: Nur snapclient läuft nativ für Audio-Output **Next Steps:** 1. `make dev` starten 2. `snapclient --host localhost --port 1704 --hostID windows-pc --player wasapi` in neuem Terminal 3. Musik über Mopidy oder Spotify abspielen 4. Genießen! 🎵