fetch() from file:// was blocked by missing Access-Control-Allow-Origin
on the music-light server. Both color and album art now work.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
DataSource fork+exec was limited to ~1fps. Now cava pipes into a Python
SSE server (port 5555) and the HTML connects directly via EventSource,
getting updates at up to 60fps without QML overhead.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CAVA runs in background via cava-start.sh, writing bar values to
/tmp/skeledance_bars. A new QML DataSource polls that file at 80ms
and calls updateBars() in JS. Falls back to rest state when not playing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Paused/stopped playerctl treated as no music (QML change)
- Character and notes only appear when Playing
- VU meter always visible but in rest state (3px, faint) when idle
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>