v3.4 refinements: WASAPI drift correction, startup-dialog sequencing, quick-switch polish, docs

Builds on the v3.4 freeze (dd70613) with the fixes and tuning from live testing,
plus the v3.4 documentation pass.

Audio (receiver):
- Per-device WASAPI drift correction in MultiOutputPlayout. A pull-side resampler
  (mirroring SessionPlayout's proven corrector) holds each output device's buffer at
  a fixed low depth, cancelling the slow clock drift that made WASAPI peers "lag
  apart" over long sessions. Feed-forward clock-ratio measurement plus a gentle
  depth-restoring term; the first measurement window is discarded because WASAPI
  start-up priming poisons it. ASIO already self-corrected; this brings WASAPI level.
- Output device buffer requested at 5 ms (WASAPI clamps it up to the device's minimum
  period, ~10 ms) instead of 15 ms, since the corrector keeps it fed — a free saving.

UI / accessibility (MainForm, Program):
- Startup notices (what's-new About box, Realtek warning) now run one at a time via a
  single sequence instead of separate BeginInvokes, so they no longer stack into
  nested modals that couldn't be closed. The loading splash is skipped for a
  tray-bound quick switch.
- Quick profile switch keeps RemSound in the tray if it was there, and plays the
  switch cue immediately on click.
- Profile-switch cue now plays on click for every switch path (recent menu, quick
  switch, File > Open) and no longer on a fresh start into the first profile. It was
  also previously dead on the rebuilt form (pendingProfile was nulled first).
- Realtek ASIO toggle's accessible name now reads "Enable"/"Disable" to match the
  visible text, instead of "Toggle" (screen reader read the wrong word).

Docs (plain English):
- RELEASE_NOTES.md: v3.4 entry.
- About dialog: v3.4 "what's new".
- readme.html (the canonical bundled manual): quick switch, the hotkey read-outs, the
  new profile-menu-open cue, Realtek auto-detect/disable, and the config-folder path.
- MANUAL.md regenerated from readme.html via sync-manual.py so the two stay in sync.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Ednunp
2026-06-08 15:31:32 +01:00
co-authored by Claude Opus 4.8
parent dd70613017
commit 946e6f4be4
7 changed files with 434 additions and 77 deletions
+28 -21
View File
@@ -1,44 +1,51 @@
# RemSound v3.3
# RemSound v3.4
The big one: **your audio is now encrypted end to end.** Plus the connect/disconnect cues are fixed, and a handful of smaller reliability improvements.
A round of quality-of-life and reliability improvements: a fast new way to switch profiles from anywhere, a safety net for the troublesome Realtek ASIO driver, your screen reader now reads out global hotkeys, and WASAPI connections stay rock-steady over long sessions.
## Your audio is now encrypted
## Quick profile switch
Everything RemSound sends is now scrambled as it leaves your computer and only unscrambled at the other end — so nobody in between can listen in, and you no longer need a VPN just to keep a private connection private.
There's a new global hotkey — **Quick profile switch** — that pops up a small list of all your profiles, wherever you are and whatever you're doing. Arrow to the one you want, press Enter, and RemSound switches straight to it.
It works with a password on each profile:
- The profile you're currently on is marked in the list.
- A sound plays as the list opens, and the switch cue plays the moment you pick one.
- If RemSound was tucked away in the system tray, **it stays there** — no window jumping up in front of whatever you're working on.
- **You and the person you connect to use the same password** → you hear each other.
- **Different passwords** → no audio passes, and RemSound tells you so plainly instead of leaving you with silent confusion.
It's unset by default. Give it a key under **Options → Keyboard shortcuts**.
Setting a password is easy: RemSound asks for one when you create a profile, you can change it any time with **File → Change this profile's password**, and you can see and edit the passwords for all your profiles in one place under **Options → Profile passwords**. If you start sending or receiving on a profile with no password, RemSound asks you to set one first. The encryption adds no delay you could ever notice.
## A safety net for the Realtek ASIO driver
### Important: everyone needs v3.3
Realtek's bundled ASIO driver leaks Windows resources every time it's opened, and can make audio unstable. RemSound now **spots it on startup and offers, just once, to disable it** — say yes and RemSound will never touch that driver again. If you'd rather keep it, RemSound won't nag you about it after that first time.
Because the audio format changed to carry the encryption, **a v3.3 copy can only talk to other v3.3 (and later) copies.** Anyone you connect with needs to update to v3.3 too. If you try to connect to an older copy, RemSound will tell you they need to update.
You can flip it back on, or off, whenever you like from **Options → Enable / Disable Realtek ASIO driver in RemSound**.
## Connect and disconnect cues, fixed
## Your screen reader now reads out global hotkeys
- **Cues now play reliably, whatever the WAV format.** The old sound player couldn't handle high-resolution (24-bit / 96 kHz) files and would play them only sometimes — so cues, and the Preview button, were hit-and-miss. They now play every time, including any custom sound you supply.
- **The connect/disconnect cues now follow the actual audio**, not just the background "are you there?" heartbeat. So you won't hear a false "disconnect" while the sound is still playing, and the connect ding lands when the audio actually starts.
When you move over a menu item, or a control that has a global hotkey assigned, your screen reader now reads the hotkey along with everything else — for example, "press Ctrl+Shift+M anywhere". So you can learn and double-check your shortcuts just by arrowing around the window, without opening the shortcuts dialog.
## Smoother long sessions on WASAPI
On WASAPI — the ordinary Windows sound path — two machines' sound clocks run at very slightly different speeds. Over a long session that tiny difference used to add up, and the delay would slowly drift. RemSound now measures and gently corrects that drift the whole time, so a WASAPI connection is as tight at the end of a three-hour session as it was at the start. (ASIO already kept itself in step; this brings WASAPI up to the same standard.)
## Smaller improvements
- **No more crackle from address-hopping.** On setups where a peer is reachable two ways at once (e.g. a VPN and a local network), RemSound now sticks to the address that's actually working instead of flip-flopping between them.
- **Honest "online/offline".** A peer is no longer shown "offline" just because a discovery beacon blinked — only when it's genuinely gone by every measure.
- **See what's new after an update.** RemSound now opens its About box once after each update so you can see what changed. On by default; turn it off in Preferences.
- **A new "profile menu open" cue** sounds when the Quick profile switch popup appears. Like every other cue, it has its own mute toggle and custom-sound option in Preferences.
- **The profile-switch cue now plays the instant you switch**, and no longer plays on a fresh start into your first profile — so you won't hear it stacked on top of the connect sound at launch.
- **Faster device detection.** RemSound now reacts the moment you plug in or unplug a sound device, instead of checking every few seconds. This also closed a slow resource leak on the receiving side.
- **Tidier folder.** Your settings and profiles now live in a `config` folder inside RemSound. The move happens automatically the first time you run v3.4, and RemSound tells you once that it's done it. Nothing is lost, and everything works exactly as before.
## Compatibility
**v3.4 talks to v3.3 with no trouble** — the over-the-network format hasn't changed, so you don't have to update both ends at once. (You still need everyone on **v3.3 or newer**, because that's where end-to-end encryption came in.)
## Install
1. Download `RemSound-v3.3.zip` from this release.
1. Download `RemSound-v3.4.zip` from this release.
2. Close RemSound.
3. Extract the zip **over your existing RemSound folder**, overwriting program files when prompted. The zip is program files only — it won't touch your profiles, settings or recordings.
4. Run `RemSound.exe`.
After updating, set a password on the profile(s) you use to connect (RemSound will prompt you), and make sure the people you connect with have also updated to v3.3 and are using the same password.
## Upgrading
**v1.9 through v3.2:** Help → Check for updates works — it will fetch and install v3.3 automatically. If you've ticked "Check for updates on startup" and "Silently install updates", v3.3 installs itself shortly after launch.
**From v1.9 onward:** Help → Check for updates works — it will fetch and install v3.4 automatically. If you've ticked "Check for updates on startup" and "Silently install updates", v3.4 installs itself shortly after launch.
**v1.8 and earlier:** the auto-updater in those versions has a fault that prevents it installing updates, so Check for updates will download v3.3 but not apply it. Install v3.3 by hand using the steps above — just this once. From the build you install onward, updates are automatic.
**v1.8 and earlier:** the auto-updater in those versions has a fault that prevents it installing updates, so Check for updates will download v3.4 but not apply it. Install v3.4 by hand using the steps above — just this once. From the build you install onward, updates are automatic.