Skip to content

Releases: dgruss/SmartMicrophone

v0.14

25 Nov 00:15

Choose a tag to compare

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.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.

v0.13

29 Sep 17:49

Choose a tag to compare

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

27 Sep 21:16

Choose a tag to compare

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

25 Sep 21:35

Choose a tag to compare

SmartMicrophone v0.11 – Release Notes

  • Added a new flag --skip-scan-songs to skip scanning songs and building songs_index.json when 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.ADDRESS instead of ipv4.addresses.
  • Fixed a logic issue where the hotspot would not start if waiting == 0.
  • The log file virtual-microphone.log is now truncated at each startup, ensuring logs always start fresh.
  • Added a known bug: no iPhone support (due to webrtc-cli issues).

Full Changelog: v0.1...v0.11

v0.1

23 Sep 22:23

Choose a tag to compare

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