Skip to content

Fix TCI RX gain default fallback: "1.0" → "0.5" to match TciApplet and DAX#1811

Merged
ten9876 merged 1 commit into
aethersdr:mainfrom
NF0T:fix/tci-rx-gain-default
Apr 21, 2026
Merged

Fix TCI RX gain default fallback: "1.0" → "0.5" to match TciApplet and DAX#1811
ten9876 merged 1 commit into
aethersdr:mainfrom
NF0T:fix/tci-rx-gain-default

Conversation

@NF0T

@NF0T NF0T commented Apr 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • TciServer constructor reads TciRxGain<n> from AppSettings with a fallback of "1.0", but TciApplet initialises its slider with "0.5" as the default — the same value used by all DAX gain paths.
  • On a fresh install or after the DaxRxGainTciRxGain key migration, if TciRxGain is 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.
  • Fix: change the s.value(key, "1.0") fallback to "0.5" to match every other gain path in the codebase.

Test plan

  • Fresh AppSettings (delete ~/.config/AetherSDR/AetherSDR.settings): connect, open TCI applet — RX gain slider initialises at 0.5 and audio level matches DAX at equal slider position
  • Existing AppSettings with TciRxGain present: no change in behaviour — stored value is read normally
  • Existing AppSettings without TciRxGain (pre-migration): fallback now 0.5 instead of 1.0

Notes

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

…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>
@NF0T NF0T requested a review from ten9876 as a code owner April 21, 2026 14:33

@aethersdr-agent aethersdr-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ten9876 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified TciApplet uses '0.5' default at line 90 — this mismatch is correct to fix. LGTM.

@ten9876 ten9876 merged commit ba98495 into aethersdr:main Apr 21, 2026
5 checks passed
ten9876 added a commit that referenced this pull request Apr 22, 2026
)

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>
@NF0T NF0T deleted the fix/tci-rx-gain-default branch April 22, 2026 14:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants