github gbozo/no-sdr v2.14.0
v2.14.0 — Noise reduction & filter overhaul

one hour ago

Noise reduction

  • LMS ANR / auto-notch fixed: restored the WDSP constants (den_mult 6.25e-10, lidx 120–200 / 0–200, +1/−3 ramp, auto-notch 64 taps / 16-sample delay). The previous quartic leakage scale drove the leak term above 2, inverting it every sample — the "noise reduction" added ~17 dB of gain and distortion instead of removing noise.
  • Noise blanker threshold: now mapped when the state is re-sent after a reconnect. The raw 0–1 slider value previously made the server blank every sample, silencing the channel.
  • Blanker timing: the server's pre-filter average (2 ms) and blanking guard (100 µs) now scale with the dongle sample rate instead of a fixed 100-sample alpha.
  • Dead code removed: the spectral/Wiener NR and client audio blanker engine (~500 lines) is gone.

Filters

  • SSB passband: the per-client extractor uses a one-sided bandwidth for USB/LSB, so a 2400 Hz request keeps the whole sideband instead of halving it to ±1200 Hz.
  • WFM stereo: a decimating FIR (129 taps at 15.5 kHz) replaces the 51-tap LPF + drop-4-of-5 chain, rejecting the 24–34 kHz fold-back while using fewer MACs.
  • Client upsampling: polyphase windowed-sinc interpolation for SSB (24 kHz) and CW (12 kHz) to 48 kHz; imaging drops from ~−55 dB to ~−100 dB.
  • De-emphasis: selectable 50/75 µs FM de-emphasis, applied locally for the IQ path and on the server for Opus ({"cmd":"deemphasis"}).
  • Hi-blend: new Auto mode follows the signal level; the rumble HPF range now extends to 400 Hz.
  • CPU: block-form audio LPFs for FM/AM/SSB/CW and a 0.45 anti-alias cutoff.

Verification

cargo test 242 passed, cargo check --all-features, npm run typecheck and npm run build are clean. New tests cover the one-sided extractor, blanker rate scaling, decimating FIR, de-emphasis selection and the deemphasis command.

CI builds the portable server archives and Electron packages for this release.

Don't miss a new no-sdr release

NewReleases is sending notifications on new releases.