sjg
e7997f8492
[perf](trx-backend-soapysdr): use ring history for wfm resampler
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:34:50 +01:00
sjg
a6c3a85c8d
[fix](trx-backend-soapysdr): match wfm sum/diff filter cutoffs at 18 kHz
...
Raise both AUDIO_BW_HZ and STEREO_DIFF_BW_HZ to 18 kHz so the L+R and
L-R filter paths have identical group delay across the full audio band.
The previous mismatch (15.8 vs 14.5 kHz) caused frequency-dependent
phase errors in the stereo matrix that degraded real-world separation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:31:34 +01:00
sjg
f9691fee1e
[perf](trx-backend-soapysdr): vectorize wfm discriminator angle
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:30:41 +01:00
sjg
72219956d9
[perf](trx-backend-soapysdr): trim wfm resampler taps
...
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:21:50 +01:00
sjg
b2ce62646c
[fix](trx-backend-soapysdr): improve wfm stereo blend threshold
...
Raise the stereo blend floor from 0.55 to 0.75 at pilot lock and lower
the full-blend ceiling from stereo_detect_level 0.92 to 0.70. This
gives real-world signals with moderate pilot strength much better L/R
separation (~17 dB immediately at lock vs ~5 dB before) and reaches
full unity blend sooner.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-03-01 01:20:38 +01:00
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