- get-playing.sh: iterates playerctl players, picks the one actually
Playing; QML now calls this instead of bare playerctl metadata so
a paused Spotify no longer blocks a playing YouTube from showing
- dancer.html: replace single lyric line with 5-slot karaoke display —
active line (center) is full-brightness with theme-color glow; 2 lines
before/after are progressively dimmed; slots fade out/in (0.18s/0.45s)
when the active line advances
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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>