Skip to content

Audio crackling on SSB when NR2 is enabled #1464

Description

@LU5DX

Report preparation

  • I used the AI-assisted bug report tool (Help → Support → File an Issue)
  • I have attached a support bundle or log file

What happened?

Audio crackling on SSB when NR2 is enabled

Labels: bug, DSP, audio, SSB, windows


What happened

When demodulating SSB, enabling NR2 introduces persistent crackling artifacts in the audio stream. The artifacts resemble discontinuities (short bursts/pops) rather than broadband distortion and are immediately removed when NR2 is disabled.

The issue appears isolated to the NR2 processing path:

  • NR (baseline LMS-style NR) → no artifacts
  • NR4 → no artifacts
  • NR2 → reproducible crackling

Behavior is consistent across versions v0.8.12 and v0.8.15.

Environment

  • AetherSDR version: v0.8.12 and v0.8.15
  • OS: Windows 11 Home 22H2 (Build 22621.4317)
  • CPU: Intel Core i7-13700HX 2.10 GHz (13th Gen)
  • RAM: 32 GB (31.7 GB usable)
  • Runtime: Latest Visual C++ redistributable installed
  • Linux: Not yet tested — will follow up

Suggested fix / investigation areas

The symptom (impulsive crackling) suggests temporal discontinuities rather than steady-state DSP artifacts. Likely areas to investigate:

1. Buffering / block boundary issues

  • Check for frame boundary discontinuities in NR2 processing:
    • Missing overlap-add / overlap-save handling
    • State reset between blocks
  • Verify continuity of internal state (e.g., noise estimate, filter taps)

2. Numerical instability / denormals

  • NR2 may involve spectral-domain or adaptive estimation:
    • Check for NaNs / inf / denormals propagating into output
    • Sudden gain spikes or zeroing could produce audible “ticks”

3. Gain / scaling discontinuities

  • Inspect:
    • Per-frame gain normalization
    • Log/exp or MMSE-style estimators producing abrupt gain changes
  • Compare with NR4 smoothing behavior (likely better temporal smoothing)

4. Threading / real-time constraints

  • Possible audio underruns masked as DSP artifacts
  • NR2 may be more CPU-intensive:
    • Check if processing exceeds buffer deadline
    • Look for contention in DSP/audio thread

5. AGC interaction (ordering)

  • If NR2 is applied post-AGC, feedback interaction may amplify artifacts
  • Validate:
    • NR2 pre/post AGC placement
    • Consistency with NR / NR4 pipeline

6. Implementation divergence vs NR/NR4

  • Since NR and NR4 are clean:
    • Compare:
      • Windowing strategy
      • FFT size / hop size
      • Smoothing constants
  • Look specifically for missing temporal smoothing in NR2 gain function

Additional notes

  • Issue is 100% reproducible on SSB voice.
  • Not observed on other NR modes under identical conditions.
  • Sounds like sample discontinuities or short buffer underruns, not typical NR “musical noise”.

What did you expect?

NR2 should reduce noise without introducing discontinuities or non-stationary artifacts beyond those typically associated with aggressive DSP noise reduction.

While some artifacts are expected in NR algorithms, they should manifest as smoothing/warbling—not impulsive crackling.

Steps to reproduce

  1. Launch AetherSDR and connect to a radio.
  2. Tune to a stable SSB signal (voice preferred for clarity).
  3. Enable NR2.
  4. Observe crackling artifacts in the audio.
  5. Disable NR2 → artifacts immediately disappear.
  6. Enable NR or NR4 → audio remains clean.

Radio model & firmware

Flex 6600 Firmwar 4.1.5

Linux distro & Qt version

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    awaiting-responseWaiting for reporter to provide additional informationbugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions