Bump to v1.2.0: recording, sound cues, drift compensation, diagnostics
New user-facing features:
* Recording. Dedicated Record menu (Alt+O — moved from Alt+R to
avoid clashing with the Receive audio checkbox), Start/Stop on
Ctrl+R, settings dialog, per-profile source / format / bit-depth /
channel-mode / folder. Three source modes (received only, sent
only, both). Files are crash-resilient — a process crash
mid-recording leaves a playable file containing everything up to
the last header refresh (~5 seconds).
* Four output formats, all functional:
- WAV: 16/24-bit PCM or 32-bit float, custom writer with
periodic RIFF re-patching.
- MP3: LAME 128–320 kbps CBR (via NAudio.Lame).
- OGG-Opus: 96–256 kbps VBR (via Concentus.Oggfile, reusing the
Concentus encoder from the wire path).
- FLAC: 16/24-bit lossless (via CUETools.Codecs.FLAKE — pure
managed, no native DLL).
* Recording start/stop sound cues. record start.wav and
record stop.wav play around the recording transition. Played via
System.Media.SoundPlayer to the default Windows output, separate
from the recording pipeline so a normal recording does not contain
the cue.
* Per-cue Preferences. The old single "Mute connect/disconnect
sounds" checkbox is replaced by a CheckedListBox: Connect /
Disconnect / Recording start / Recording stop. Old profiles with
the legacy MuteConnectionCues=true are honoured on first load via
a migration path in the new Load* helpers.
* Receiver-side drift compensation switched from discrete
single-frame splices to a continuous WdlResampler at a smoothed
rate ratio. SessionPlayout.cs rewrite.
Diagnostics (only active with Enable logs ticked):
* Per-stage discontinuity probes — sender raw capture (per backend,
PushModeWasapi + Asio both wired), sender pre-encode (now per
lane in BothIndependent, fixing a cross-stream artefact), receiver
post-decode, post-ring, post-resampler.
* Wire-level packet sequence tracking on each PCM stream — in-order
/ missed / reordered / duplicated counts in the diag log.
* Clipped-sample delta in the diag log.
* New AudioStepProbe in RemSound.Core with per-channel scan helper.
UI changes:
* Record menu uses Alt+O (Rec&ord). Inside the menu, item mnemonics
unchanged (S / T / O / C).
* Auto-tune interval combo label is mode-aware: "Auto-tune latency
interval" in classic modes, "Auto-tune interval — WASAPI and ASIO"
in BothIndependent. The combo's Enabled state now follows EITHER
lane's auto-tune checkbox (was only the WASAPI one — bug).
Wire format and audio pipeline unchanged from v1.1 — v1.1 and v1.2
peers interoperate.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
a0fe8070ed
commit
c59e413c1f
@@ -20,6 +20,74 @@ internal sealed class AboutDialog : Form
|
||||
/// updates" path.</summary>
|
||||
private const string ReleaseNotes =
|
||||
"""
|
||||
RemSound v1.2
|
||||
|
||||
Recording, sound cues, and receiver-side drift compensation.
|
||||
This release is mostly about features that sit on top of the
|
||||
v1.1 transport — the wire format and audio pipeline are
|
||||
unchanged, so v1.1 and v1.2 peers interoperate.
|
||||
|
||||
What's new:
|
||||
* Recording. New Record menu (Alt+O) — Start / Stop with
|
||||
Ctrl+R, dedicated settings dialog, per-profile choice of
|
||||
source (received only, sent only, or both), file format
|
||||
(WAV, MP3, OGG-Opus, FLAC), bit depth or bitrate, mono or
|
||||
stereo, and recordings folder. Files are crash-resilient:
|
||||
WAV re-patches its RIFF header every 5 seconds, MP3 / FLAC
|
||||
/ OGG-Opus all produce well-formed truncated files if the
|
||||
app crashes mid-recording.
|
||||
* OGG-Opus and FLAC encoders now wired up — they were stubs
|
||||
in earlier builds. OGG-Opus reuses the same Concentus
|
||||
encoder as the wire path; FLAC uses pure-managed CUETools
|
||||
FLAKE (no native DLL).
|
||||
* Recording start / stop sound cues. Plays a short ding
|
||||
when recording transitions on or off. Played via the
|
||||
default Windows output device, separate from the
|
||||
recording pipeline, so a normal recording does not include
|
||||
the cue.
|
||||
* Sound-cue Preferences. The old single "Mute connect /
|
||||
disconnect sounds" checkbox is replaced by a per-cue
|
||||
CheckedListBox: Connect / Disconnect / Recording start /
|
||||
Recording stop, each independently toggleable. Old profile
|
||||
settings that had the legacy mute on are honoured on first
|
||||
load.
|
||||
* Receiver-side drift compensation switched from discrete
|
||||
single-frame splices to a continuous WdlResampler running
|
||||
at a slowly-updated rate ratio. Smooths out long-session
|
||||
clock drift between sender and receiver without the
|
||||
occasional 21 µs splice the v1.1 corrector emitted.
|
||||
|
||||
UI changes:
|
||||
* Record menu moved to Alt+O (Rec&ord). The old Alt+R chord
|
||||
conflicted with the Receive audio checkbox on the main
|
||||
form. Inside the menu the item mnemonics are unchanged
|
||||
(S / T / O / C for Start, settings, Open folder, Change
|
||||
folder).
|
||||
* Auto-tune interval combo label and accessible name are now
|
||||
mode-aware. In BothIndependent mode it reads "Auto-tune
|
||||
interval — WASAPI and ASIO" so it's clear the same combo
|
||||
drives ticks for both lanes; each lane still independently
|
||||
tunes to its own target latency. Earlier builds also had
|
||||
a bug where ticking ASIO auto-tune alone left this combo
|
||||
greyed out — fixed.
|
||||
|
||||
Diagnostics (only active with Enable logs ticked):
|
||||
* Per-stage discontinuity probes — sender raw capture,
|
||||
sender pre-encode (now per lane in BothIndependent),
|
||||
receiver post-decode, receiver post-ring, receiver
|
||||
post-resampler. Lets a log inspection localise where a
|
||||
click was introduced (capture / wire / decode / playout).
|
||||
* Wire-level sequence tracking on each PCM stream:
|
||||
in-order / missed / reordered / duplicated packet counts
|
||||
in the diag log. Healthy LAN should show all-zero except
|
||||
in-order; non-zero on the others points to transport
|
||||
issues rather than software.
|
||||
* Clipped-sample delta in the diag log.
|
||||
|
||||
Bug fixes:
|
||||
* Auto-tune interval combo no longer greys out when only
|
||||
ASIO auto-tune is ticked in BothIndependent.
|
||||
|
||||
RemSound v1.1
|
||||
|
||||
Priority and performance hardening, plus always-on network
|
||||
|
||||
Reference in New Issue
Block a user