sjg
926a02e043
[perf](trx-backend-soapysdr): streamline wfm decode loop
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:19:47 +01:00
sjg
b42e557a25
[perf](trx-backend-soapysdr): pack iq fir filtering
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:17:16 +01:00
sjg
198efa2092
[perf](trx-backend-soapysdr): update fir overlap in place
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:13:10 +01:00
sjg
7a6467320b
[perf](trx-backend-soapysdr): reuse fir scratch buffers
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:10:34 +01:00
sjg
ca0f236f4a
[perf](trx-backend-soapysdr): reduce mixer and buffer overhead
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:07:19 +01:00
sjg
bec3fc72d3
[fix](trx-backend-soapysdr): widen wfm stereo image
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:03:05 +01:00
sjg
6f37f9c66b
[fix](trx-backend-soapysdr): refine wfm stereo tracking
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:58:20 +01:00
sjg
e84a0599fa
[feat](trx-backend-soapysdr): add avx2 wfm hot paths
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:52:53 +01:00
sjg
3e88c3f5d9
[feat](trx-backend-soapysdr): speed up fir and widen wfm resampler
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:50:04 +01:00
sjg
5411607b63
[fix](trx-backend-soapysdr): honor frontend wfm bandwidth
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:46:08 +01:00
sjg
17c70f89e5
[fix](trx-backend-soapysdr): fully reset wfm decoder on tune
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:41:28 +01:00
sjg
fdcc732c83
[fix](trx-backend-soapysdr): retune wfm fir window
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:38:44 +01:00
sjg
b0d8ce8e29
[fix](trx-backend-soapysdr): restore wfm agc and cutoffs
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:35:19 +01:00
sjg
a6847742d9
[fix](trx-backend-soapysdr): keep wfm discriminator state across blocks
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:31:41 +01:00
sjg
a8ed9e8fa4
[fix](trx-backend-soapysdr): lower wfm internal rate ceiling
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:24:33 +01:00
sjg
a25182ea3f
[fix](trx-backend-soapysdr): drop wfm limiter and widen cutoffs
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:20:41 +01:00
sjg
3b277da243
[fix](trx-backend-soapysdr): make wfm limiter bass-insensitive
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:10:54 +01:00
sjg
206696acc5
[feat](trx-backend-soapysdr): add adaptive wfm stereo blend
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:07:13 +01:00
sjg
5060522541
[fix](trx-backend-soapysdr): add wfm limiter and restore cutoffs
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:02:19 +01:00
sjg
b6f0a9967d
[fix](trx-backend-soapysdr): improve wfm stereo separation trim
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 00:00:31 +01:00
sjg
32822effda
[fix](trx-backend-soapysdr): retune wfm sum and diff cutoffs
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:55:17 +01:00
sjg
635d2b39bb
[fix](trx-backend-soapysdr): add stereo diff high-pass and headroom
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:51:26 +01:00
sjg
420e98de31
[feat](trx-client,trx-frontend-http): add default rig and hideable rf gain
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:45:17 +01:00
sjg
9453c90dac
[fix](trx-backend-soapysdr): retune wfm stereo difference path
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:41:07 +01:00
sjg
0dd91a952b
[fix](trx-backend-soapysdr): add headroom to wfm stereo matrix
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:38:18 +01:00
sjg
6d466f44d2
[fix](trx-backend-soapysdr): narrow wfm stereo difference band
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:37:08 +01:00
sjg
9e49bfbcc8
[fix](trx-backend-soapysdr): latch full stereo blend after lock
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:34:43 +01:00
sjg
617255cd32
[feat](trx-rs): expose live sdr gain control
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:30:08 +01:00
sjg
93e507606e
[feat](trx-server,trx-backend-soapysdr): add sdr gain ceiling
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:23:41 +01:00
sjg
dbeec9fb39
[feat](trx-backend-soapysdr): use fir resampler for wfm audio
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:17:15 +01:00
sjg
96da7ca471
[style](trx-frontend-http): lower rds overlay badge
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:12:38 +01:00
sjg
5a6ff1427a
[fix](trx-client,trx-backend-soapysdr): improve rig switching and fm agc
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 23:06:53 +01:00
sjg
8440fe164b
[fix](trx-backend-soapysdr): reduce wfm audio cutoff
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 22:54:03 +01:00
sjg
735c9a7f07
[fix](trx-backend-soapysdr): bypass agc for wfm audio
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 22:38:54 +01:00
sjg
3ccda5fb5a
[fix](trx-backend-soapysdr,trx-frontend-http): reset stereo state and soften wfm top end
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 22:34:54 +01:00
sjg
3a75b7ac5b
[fix](trx-frontend-http): satisfy audio copyTo arguments
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 22:28:35 +01:00
sjg
85ad204974
[fix](trx-frontend-http): handle stereo audio frame layouts
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 22:26:56 +01:00
sjg
f06dbc921a
[fix](trx-frontend-http): reconfigure audio stream on rig change
...
Co-authored-by: OpenAI Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 22:23:03 +01:00
sjg
b6053729a4
[fix](trx-backend-soapysdr): emit proper stereo pcm frames
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 22:07:34 +01:00
sjg
df1bbf8f5b
[fix](trx-rs): remove wfm denoise and default stereo audio
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 22:01:17 +01:00
sjg
d6c89bcc6b
[fix](trx-backend-soapysdr): tighten wfm pilot detect and stereo agc
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 21:51:36 +01:00
sjg
b722787ada
[feat](trx-rs): show live wfm stereo detect state
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 21:44:32 +01:00
sjg
862f0200bb
[fix](trx-backend-soapysdr): tune wfm stereo separation trim
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 21:39:35 +01:00
sjg
73fe9d52ff
[fix](trx-backend-soapysdr): improve wfm stereo separation
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 21:34:31 +01:00
sjg
a456864957
[fix](trx-backend-soapysdr): restore wfm stereo separation
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 21:26:32 +01:00
sjg
1cc60c8a10
[style](trx-frontend-http): align wfm control button sizing
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 20:51:27 +01:00
sjg
eb740dbb43
[fix](trx-backend-soapysdr): add missing wfm_denoise arg in dsp tests
...
Fix pre-existing compilation failures in four test call sites that were
missing the wfm_denoise: bool argument added to ChannelDsp::new() and
SdrPipeline::start().
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 20:43:10 +01:00
sjg
bbc7e857e5
[fix](trx-backend-soapysdr): improve WFM stereo demodulation quality
...
- Raise audio LPF cutoff from 15 kHz to 17 kHz to pass full FM stereo
audio bandwidth without excessive HF rolloff
- Replace 2-point linear interpolation resampler with 4-point Hermite
cubic spline for a much flatter passband up to 17 kHz
- Add FM discriminator gain normalization (fm_gain = fs / 150000) so
±75 kHz deviation maps to ±1.0 regardless of composite sample rate,
stabilizing stereo carrier amplitude reconstruction
- Double pilot PLL proportional (0.0015→0.003) and integral
(0.00002→0.00005) gains for faster lock and better tracking
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 20:43:01 +01:00
sjg
3d8fd32488
[fix](trx-backend-soapysdr): prevent double agc on mono wfm
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 20:30:12 +01:00
sjg
244f91d97b
[fix](trx-backend-soapysdr,trx-frontend-http): make wfm mono mode real
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-02-28 20:25:04 +01:00