Release v4.2: fix connect-freeze (#10) and new-profile minimize (#12); smoother WASAPI timing

- Connect no longer freezes: PushDiscoveryUnicastHints resolved remembered
  hostnames with synchronous Dns.GetHostAddresses on the UI thread, blocking the
  whole window for the DNS timeout on an unresolvable name. A screen-reader user
  experiences that as the entire machine locking up. Resolution now runs off the
  UI thread. Same class of bug as the v3.0.1 UPnP-on-the-UI-thread hang. (#10)

- New profile / profile switch no longer hides the window: OnShown ORed the
  global StartMinimised into every instance, so creating a new profile while
  Start minimised was on dropped the window to the tray and looked like a crash.
  StartMinimised now applies only to a genuine cold launch; relaunches honour the
  explicit per-instance flag. (#12)

- Smoother WASAPI audio: the receive producer loop and sender mix loop pace
  themselves with WaitHandle.WaitOne, bound by the system timer (~15.6ms default).
  Without a fine timer the 10ms feed slips to ~16-31ms and delivers audio in
  chunky bursts (the desktop-render chunkiness behind Andre's dropouts/lag). New
  SystemTimerResolution holds a 1ms timer whenever a stream is live, independent
  of the opt-in Priority mode.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Ednunp
2026-06-15 09:21:04 +01:00
co-authored by Claude Opus 4.8
parent 5abbeefe29
commit 034a7de632
7 changed files with 165 additions and 47 deletions
+30
View File
@@ -20,6 +20,36 @@ internal sealed class AboutDialog : Form
/// updates" path.</summary>
private const string ReleaseNotes =
"""
RemSound v4.2
Three fixes, one of them a real annoyance gone.
Connecting to someone no longer risks a freeze.
If you had a peer saved by name and that name
couldn't be looked up quickly, RemSound used to
stall for a few seconds while it waited and
because your screen reader waits on RemSound, the
whole computer could seem to lock up. That lookup
now happens out of the way, so connecting stays
responsive.
Creating a new profile (Ctrl+N), or switching
profiles, no longer drops the window to the tray
when you have "start minimised" turned on.
Starting minimised is meant for when RemSound
first launches, not for something you did on
purpose so a new profile now comes up the normal
way (or stays in the tray only if that's where you
already were), instead of vanishing and looking
like a crash.
And WASAPI audio is smoother. RemSound now keeps
Windows' timing fine while it's streaming, so audio
moves in even steps instead of arriving in clumps.
On machines where playback was breaking up or
running laggy on WASAPI, this should help and you
no longer need Priority mode switched on to get it.
RemSound v4.1
A couple of small fixes for screen-reader users. When