Skip to content

NR2 causes loss of audio, Wave meter freeze and cannot exit AetherSDR without using Force Quit #2256

Description

@dsmit258

Title: NR2 activation causes audio loss, wave meter freeze, and application hang on macOS

What happened?

When activating the NR2 (Noise Reduction 2) feature, the application immediately stops processing or outputting audio. Simultaneously, the Wave meter (time-domain waveform display) freezes in place. The application becomes unresponsive to further user input, and a standard exit is impossible; the software must be Force Quit via the macOS Activity Monitor or Force Quit dialog.

What did you expect?

NR2 should engage client-side spectral noise reduction on the active slice audio stream without interrupting the audio path or freezing the UI. The application should remain responsive, allowing the user to toggle NR2 off or close the application normally.

Steps to reproduce

  1. Launch AetherSDR v0.9.4 on macOS.
  2. Connect to a FLEX-6400 (Firmware 4.1.5.39794).
  3. Ensure a slice is active with audible RX audio and the Wave meter is moving.
  4. Click the NR2 button in the DSP/RX control panel.
  5. Observe that audio cuts out, the Wave meter stops updating, and the UI hangs.

Radio model & firmware

  • Radio: FLEX-6400
  • Firmware: 4.1.5.39794

OS & version

  • OS: macOS (Qt 6.11.0)
  • AetherSDR Version: 0.9.4

Developer Notes

Potential Root Cause:
The issue likely resides in the client-side DSP processing loop for NR2. Since NR2 is processed locally (often involving a "wisdom" file or FFT-based spectral subtraction), the freeze suggests a deadlock in the audio callback thread or an infinite loop during the initialization of the NR2 algorithm. Given that it requires a Force Quit, the main GUI thread is likely blocked waiting for a mutex held by the audio/DSP thread.

Suspected Files & Functions:

  • src/dsp/NoiseReduction.cpp (or similar): Check the NR2 implementation and any FFT-related calls.
  • src/audio/AudioOutput.cpp: Look for the buffer processing loop where DSP filters are applied.
  • src/models/SliceModel.cpp: Review how the NR2 property change is propagated to the audio engine.
  • Check for hardware-accelerated FFT calls that might be failing or blocking on macOS/Apple Silicon vs. Linux.

Diagnostic Logging:
To capture the state leading up to the hang, please enable the following categories in Help → Support:

  • DSP: To track the NR2 activation and filter coefficients.
  • Audio: To monitor for buffer underruns or thread stalls.
  • Protocol: To see if the radio continues to stream VITA-49 data after the local UI freezes.

Additional Observation:
This may be related to the "Wisdom" file generation (common in WDSP-based implementations). If the application fails to write this file to the macOS application support folder due to permissions or path issues, it may hang indefinitely during the initial FFT optimization phase.

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintainer-reviewRequires maintainer review before any action is taken

    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