206 lines
5.8 KiB
Markdown
206 lines
5.8 KiB
Markdown
# 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-<version>-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! 🎵
|