Releases: dgruss/SmartMicrophone
Releases · dgruss/SmartMicrophone
v0.14
Highlights
- 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.pymonitors USDX logs, maintains per-phase state, and exposes/playlist/status,/playlist/toggle, and/playlist/nextendpoints for the Control tab. - Added
countdown_overlay.pyto render countdowns locally; the server automatically launches/terminates it as playlist phases change. - Expanded CLI options:
--usdx-log-fileto point directly at the UltraStarError.logfor decoder monitoring.--countdownto change the default countdown length for every playlist phase.--control-passwordto require authentication before acquiring the Control tab or issuing automation actions.--control-onlyto disable WebRTC/audio flows when acting purely as a remote controller.--max-name-lengthto cap player display names.--enable-forwardinggate 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-onlyis set, reducing CPU load for control-only deployments. - Safer handling of network automation:
--enable-forwardingnow 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.
v0.13
Bugfixes
- success case missing after code cleanup
- make sure the local domain->ip overloading really just happens for the relevant hotspot ip, otherwise internet might not work on the hotspot
Full Changelog: v0.12...v0.13
v0.12
SmartMicrophone v0.12 – Release Notes
- iPhone Support!
** Replaced the webrtc-cli submodule with a new built-in audio backend, pulse-receive, removing the need for external dependencies and updating to a recent Pion version which works well across devices, including iphones
** Cleaned up obsolete files and references, including removal of the old “No iPhone Support” note (status may have changed). - Updated instructions, now also including instructions for the USDX beta3 fork for advanced features used by SmartMicrophone.
Full Changelog: v0.11...v0.12
v0.11
SmartMicrophone v0.11 – Release Notes
- Added a new flag
--skip-scan-songsto skip scanning songs and buildingsongs_index.jsonwhen launching the server.
Useful for faster startup when working with large song libraries or when indexing is not required. - Corrected hotspot detection by checking
IP4.ADDRESSinstead ofipv4.addresses. - Fixed a logic issue where the hotspot would not start if
waiting == 0. - The log file
virtual-microphone.logis now truncated at each startup, ensuring logs always start fresh. - Added a known bug: no iPhone support (due to
webrtc-cliissues).
Full Changelog: v0.1...v0.11
v0.1
SmartMicrophone v0.1 – Initial Release
- Initial implementation of web-based microphone and remote control for UltraStar Deluxe.
- Supports up to 6 virtual microphones using PipeWire/PulseAudio sinks.
- Web interface for song search, playlist management, and per-player audio delay.
- Remote control tab for sending keystrokes and text to the game via xdotool.
- Advanced networking: Wi-Fi hotspot activation, domain mapping, iptables forwarding, and SSL/port remapping.
- Designed for Linux (Ubuntu/Debian); see README for dependencies and setup. This list might yet be incomplete
Full Changelog: https://github.com/dgruss/SmartMicrophone/commits/v0.1