Skip to content

App's own RX/TX audio streams show as generic "AetherSDR" (no node.description) in device lists #3440

Description

@Ozy311

Summary

Follow-up to #3437 (which named the DAX/TX pipe nodes). AetherSDR's own main audio I/O
streams — the RX-audio playback and the TX-mic capture — still appear in PipeWire/Pulse device
lists (qpwgraph, pavucontrol, and the WSJT-X / FLDIGI device dropdowns) as a generic
AetherSDR / AetherSDR-<id> (e.g. AetherSDR-127), with no node.description. They're
ambiguous and clutter the picker next to the now-named DAX devices.

Evidence (pw-cli ls Node, Linux / pipewire-pulse, patched #3437 build)

id 93  node.name="AetherSDR"  media.class="Stream/Output/Audio"   ← app RX audio out
id 105 node.name="AetherSDR"  media.class="Stream/Output/Audio"   ← app RX audio out
id 127 node.name="AetherSDR"  media.class="Stream/Input/Audio"    ← app TX-mic in  ("AetherSDR-127")

These carry node.name="AetherSDR" (from QCoreApplication::applicationName,
src/main.cpp:161) and no node.description, so PipeWire disambiguates duplicates with its
object id → AetherSDR-127, etc.

Likely area

src/core/AudioEngine.cpp — the main RX playback / TX-mic streams via the higher-level audio
backend (QAudioSink/QAudioSource / PortAudio), not the DAX module-pipe-source/sink path in
PipeWireAudioBridge.cpp.

Why this is separate from #3437 (kept intentionally split)

#3437 is a focused, 2-line quoting fix in the DAX pipe bridge — single-quoting the
source_properties / sink_properties string so a spaced device.description survives
pipewire-pulse's argument parser. These app streams live in a different code path and need a
different mechanism (a per-stream node.description / media name on the QAudio/PortAudio
streams, not a pactl property string), with its own verification. Bundling them would expand
#3437 across two subsystems and slow review; splitting keeps that fix small and mergeable while
tracking the remaining naming gap here.

Proposed

Set a descriptive per-stream name on the main RX/TX streams (e.g. AetherSDR RX Audio,
AetherSDR TX Mic) so every AetherSDR node is identifiable in patchbays and app device lists.

Related: #3437

Metadata

Metadata

Assignees

No one assigned

    Labels

    audioAudio engine and streamingbugSomething isn't workingmaintainer-reviewRequires maintainer review before any action is takenpriority: lowLow priority

    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