github gbozo/no-sdr v0.6.0
v0.6.0 — AM Stereo, Noise Reduction, ADPCM Compression

latest releases: v2.10.5, v2.10.4, v2.10.3...
5 months ago

What's New

AM Stereo (C-QUAM) — Experimental

  • Auto-detected in AM mode via two-stage verification: 25Hz Goertzel pilot detector + C-QUAM PLL lock confirmation
  • When a C-QUAM station is detected, stereo decoding activates automatically — same UI flow as WFM stereo
  • We need testers! ~45 US stations, a handful in Italy, Japan, Philippines, and Thailand still broadcast C-QUAM. Requires direct sampling mod or HF-capable dongle. Please report results via GitHub issues.

Noise Reduction

  • Spectral NR — Wiener filter (512-pt FFT, overlap-add, minimum-statistics noise floor estimation). Has known artifacts on music/tonal signals — improvements planned.
  • Noise Blanker — EMA amplitude tracking with 7-sample hang timer and smooth gain transitions. Works well for impulse noise on AM/HF.
  • WFM Stereo Blend — SNR-proportional continuous blend (0–1) replaces hard stereo on/off. Weak stations fade gracefully to mono.

IMA-ADPCM Compression

  • Per-client codec negotiation: none or adpcm for both FFT and IQ streams
  • FFT ADPCM: ~8:1 compression (Float32 → Int16 dB×100 → 4-bit ADPCM + 10-sample warmup)
  • IQ ADPCM: 4:1 compression (Int16 → 4-bit ADPCM)
  • Default: ADPCM enabled for both FFT and IQ
  • Live compression stats in the UI (wire bytes, ratio, savings)

Server Optimizations

  • FFT rate cap — configurable fftFps per profile (default 30). All computed FFT frames averaged into pending frame, emitted at target rate. Reduces ~1172 fps → 30 fps.
  • WebSocket backpressure — checks bufferedAmount before sending (256KB for FFT, 1MB for IQ). Slow clients get frames dropped with warning log.
  • Audio-gated IQ — server only sends per-user IQ data after client sends audio_enabled command.

Dongle Hardware Configuration

  • New config options: directSampling, biasT, digitalAgc, offsetTuning, ifGain, tunerBandwidth
  • Full rtl_tcp protocol support (commands 0x01–0x0E)
  • HF direct sampling dongle example in config.yaml

UI Improvements

  • Classic analog S-meter (needle mode) with warm backlit face, dual scale, red needle, peak hold
  • Stereo indicator and controls for both WFM and AM modes
  • Waterfall resize preservation (offscreen canvas snapshot)
  • Spectrum renderer 30fps throttle
  • Compression stats panel with live ratio and savings display

Other

  • Per-profile fftFps configuration (1–60, default 30)
  • FFT size limit raised to 16384
  • Dev scripts run shared/server/client in parallel with watch mode
  • Stereo PLL stability: faster energy tracking, 200ms hold timer, wider BPF

Don't miss a new no-sdr release

NewReleases is sending notifications on new releases.