You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Autonomous playlist automation that drives UltraStar Deluxe end-to-end: SmartMicrophone now queues entries, confirms players, tracks decoder events from Error.log, and keeps audiences synced with phase-specific countdowns.
Transparent countdown overlay (countdown_overlay.py) that uses Tkinter (or PyQt5 fallback) to project fullscreen timers on the hosting PC during playlist phases.
Hardened Control tab with optional password protection, per-channel capacity sliders, and a control-only server mode for remote FOH operators.
Stickier room assignments & mic health UI ensuring phones remain in their assigned channels and get instant feedback when audio capture drops out.
New Features & Enhancements
Playlist automation service inside server.py monitors USDX logs, maintains per-phase state, and exposes /playlist/status, /playlist/toggle, and /playlist/next endpoints for the Control tab.
Added countdown_overlay.py to render countdowns locally; the server automatically launches/terminates it as playlist phases change.
Expanded CLI options:
--usdx-log-file to point directly at the UltraStar Error.log for decoder monitoring.
--countdown to change the default countdown length for every playlist phase.
--control-password to require authentication before acquiring the Control tab or issuing automation actions.
--control-only to disable WebRTC/audio flows when acting purely as a remote controller.
--max-name-length to cap player display names.
--enable-forwarding gate so iptables rules are only applied when explicitly requested.
Room capacity persistence (data/room_capacity.json) with REST APIs and UI slider so hosts can cap attendance per mic channel.
Added sticky room tracking, server-side session metadata, and improved join logic to keep players in their assigned mic when reconnecting or when SSE updates arrive out-of-order.
Control tab now mirrors the playlist state (current/next songs, countdown remaining, auto-added entries) and synchronizes typed text via incremental keystroke diffs.
Web UI shows lock-screen player-specific videos per mic slot to indicate color and player number, plus a per-user microphone health card that detects silent inputs and recommends reloads.
Reliability & Quality Improvements
Lock screen animation assets refreshed for smoother transitions.
Improved pw-link handling in webrtc_microphone.py, including fallbacks that link by port name when PipeWire does not expose numeric IDs.
Server skips PulseWire setup and microphone scans whenever --control-only is set, reducing CPU load for control-only deployments.
Safer handling of network automation: --enable-forwarding now guards all iptables calls so accidental firewall changes don't occur when only one interface is provided.
Additional safeguards around hotspot IP detection and nmcli automation to avoid races when the interface needs extra time.