Skip to content

fix(waterfall): pace TX/FFT-fallback rows to radio line_duration (#2666). Principle I.#2667

Merged
aethersdr-agent[bot] merged 1 commit into
mainfrom
aetherclaude/issue-2666
May 14, 2026
Merged

fix(waterfall): pace TX/FFT-fallback rows to radio line_duration (#2666). Principle I.#2667
aethersdr-agent[bot] merged 1 commit into
mainfrom
aetherclaude/issue-2666

Conversation

@aethersdr-agent

Copy link
Copy Markdown
Contributor

Summary

Fixes #2666

What was changed

fix(waterfall): pace TX/FFT-fallback rows to radio line_duration (#2666). Principle I.

Files modified

  • src/gui/SpectrumWidget.cpp
  • src/gui/SpectrumWidget.h
 src/gui/SpectrumWidget.cpp | 13 +++++++++++++
 src/gui/SpectrumWidget.h   |  8 +++++++-
 2 files changed, 20 insertions(+), 1 deletion(-)

Generated by AetherClaude (automated agent for AetherSDR)

…). Principle I.

The TX waterfall scrolled faster than RX because TX (and the RX
FFT-fallback path after native tiles time out) pushed one row per
panadapter FFT frame (~25 fps), while RX native tiles arrived at the
radio's line_duration cadence (default 100 ms = 10 rows/sec).

Throttle pushWaterfallRow() to m_wfLineDuration ms/row using a
last-row timestamp so FFT-derived rows scroll at the same rate as
native tiles. line_duration is the FlexLib-authoritative rate set
via "display panafall set <wfId> line_duration", so reusing it is
both correct and protocol-faithful (no new client-side FPS knob).

Reset the timestamp on TX entry and on setWfLineDuration() so the
first row after a state/rate change renders immediately.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

@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.

Approved. Correct architectural diagnosis (two waterfall row producers running at different cadences — native RX at line_duration via radio tiles, FFT-derived TX+fallback at FFT fps). Throttle in pushWaterfallRow paces FFT-derived rows to match; native RX bypasses the gate. Two reset triggers (TX entry, line_duration change) handle the edge cases correctly.

@aethersdr-agent aethersdr-agent Bot merged commit 835e6c8 into main May 14, 2026
5 checks passed
@aethersdr-agent aethersdr-agent Bot deleted the aetherclaude/issue-2666 branch May 14, 2026 23:48
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.

TX waterfall update rate does not match RX waterfall rate

1 participant