Fix TCI RX gain default fallback: "1.0" → "0.5" to match TciApplet and DAX#1811
Conversation
…d DAX TciServer constructor used "1.0" as the s.value() fallback for TciRxGain while TciApplet and all DAX gain paths use "0.5". If TciRxGain was ever absent from AppSettings after migration, the server would run at full gain while the applet slider showed 0.5 — making TCI RX audio 2× louder than DAX at nominally equal slider positions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Looks good — clean, well-scoped fix.
Verified: On main, TciServer.cpp:69 reads s.value(key, "1.0") while the migration fallback on line 65 and TciApplet.cpp:90 both use "0.5". The mismatch means a fresh install (no DaxRxGain to migrate, no TciRxGain written yet) hits the "1.0" fallback and runs at full gain while the slider shows 0.5 — exactly as described.
Changing the fallback to "0.5" aligns all three code paths. No scope creep, no logic changes beyond the default value.
One observation (not blocking): after migration runs on line 66, s.setValue(key, legacy) writes the key, so the fallback on line 69 is only reachable on a truly fresh install with no DaxRxGain either. That's a narrow window, but it's the exact scenario that bites new users, so this is worth fixing.
Thanks for the contribution, @NF0T — and for the clear distinction from the closed #1559.
ten9876
left a comment
There was a problem hiding this comment.
Verified TciApplet uses '0.5' default at line 90 — this mismatch is correct to fix. LGTM.
) Cuts a community-contribution-heavy point release. Eight community PRs landed plus three AetherClaude crash fixes. Highlights: Community: - Fix RADE RX not decoding on Windows (#1820, NF0T) - Clamp stale DAX RX backlog on macOS — fixes +1.5s FT8 DT bias (#1822, jensenpat) - Fix TCI DAX resampler crosstalk between slices (#1815, Chaosuk97) - Fix RX applet pan slider with NR active (#1799, Chaosuk97) - Fix TCI RX gain default 1.0 → 0.5 to match applet (#1811, NF0T) - Fix HAVE_SERIALPORT guard (#1812, NF0T) - Seamless ADIF logbook auto-reload (#1801, Chaosuk97) - RAC Canada band-plan corrections (#1817, VE3NEM) AetherClaude crash fixes: - Applet reorder with floating containers (#1745 → #1746) - Lazy-build RadioSetupDialog tabs, dodges Wayland FFmpeg/VDPAU crash (#1776 → #1777) - PanAdapter float-freeze — show-after-reset + direct reparent (#1668 → #1669) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
TciServerconstructor readsTciRxGain<n>from AppSettings with a fallback of"1.0", butTciAppletinitialises its slider with"0.5"as the default — the same value used by all DAX gain paths.DaxRxGain→TciRxGainkey migration, ifTciRxGainis absent from AppSettings the server runs at full gain (1.0) while the applet slider shows 0.5, making TCI RX audio 2× louder than DAX at nominally equal slider positions.s.value(key, "1.0")fallback to"0.5"to match every other gain path in the codebase.Test plan
~/.config/AetherSDR/AetherSDR.settings): connect, open TCI applet — RX gain slider initialises at 0.5 and audio level matches DAX at equal slider positionTciRxGainpresent: no change in behaviour — stored value is read normallyTciRxGain(pre-migration): fallback now 0.5 instead of 1.0Notes
This is distinct from the closed PR #1559 ("Apply DAX RX gain to TCI audio output"), which proposed mirroring DAX gain into TCI and was superseded by the full TCI/DAX applet split in #1631. This PR only fixes the AppSettings default value — no change to gain application logic.
🤖 Generated with Claude Code