#1084177 cubicsdr: On a system with pipewire (and pipewire-pulse) CubicSDR does not see output sound device

Package:
cubicsdr
Source:
cubicsdr
Description:
Software Defined Radio receiver
Submitter:
Wojciech Zabolotny
Date:
2026-02-02 00:59:01 UTC
Severity:
normal
#1084177#5
Date:
2024-10-06 08:36:20 UTC
From:
To:
Dear Maintainer,

When I start the CubicSDR on a Debian/testing system with pipewire (and
pipewire-pulse) installed, no audio output device is detected.

pactl info reports correctly:

$ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 73
Tile Size: 65472
User Name: wzab
Host Name: wzab
Server Name: PulseAudio (on PipeWire 1.2.5)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_00_1b.0.analog-stereo
Default Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
Cookie: c292:dbe5

But CubicSDR displays:
$ CubicSDR Loading:: configuration file '/home/wzab/.CubicSDR/config.xml'
Loaded 283 rig models via hamlib.

RtApi::getDeviceInfo: deviceId argument not found.


Audio Device #0 Default Output? No
Default Input? No
Input channels: 0
Output channels: 0
Duplex channels: 0
Native formats:
Supported sample rates:


RtApi::getDeviceInfo: deviceId argument not found.


Audio Device #1 Default Output? No
Default Input? No
Input channels: 0
Output channels: 0
Duplex channels: 0
Native formats:
Supported sample rates:


RtApi::getDeviceInfo: deviceId argument not found.


Audio Device #2 Default Output? No
Default Input? No
Input channels: 0
Output channels: 0
Duplex channels: 0
Native formats:
Supported sample rates:


RtApi::getDeviceInfo: deviceId argument not found.


Audio Device #3 Default Output? No
Default Input? No
Input channels: 0
Output channels: 0
Duplex channels: 0
Native formats:
Supported sample rates:


RtApi::getDeviceInfo: deviceId argument not found.


Audio Device #4 Default Output? No
Default Input? No
Input channels: 0
Output channels: 0
Duplex channels: 0
Native formats:
Supported sample rates:


RtApi::getDeviceInfo: deviceId argument not found.


Audio Device #5 Default Output? No
Default Input? No
Input channels: 0
Output channels: 0
Duplex channels: 0
Native formats:
Supported sample rates:


RtApi::getDeviceInfo: deviceId argument not found.


Audio Device #6 Default Output? No
Default Input? No
Input channels: 0
Output channels: 0
Duplex channels: 0
Native formats:
Supported sample rates:


RtApi::getDeviceInfo: deviceId argument not found.


Audio Device #7 Default Output? No
Default Input? No
Input channels: 0
Output channels: 0
Duplex channels: 0
Native formats:
Supported sample rates:

SDR enumerator starting.
SoapySDR init..
API Version: v0.8.0
ABI Version: v0.8
Install root: /usr
Loading modules... Available vertical sync SwapInterval functions:
glxSwapIntervalEXT: Yes
DRI2SwapInterval: No
glxSwapIntervalMESA: Yes
glxSwapIntervalSGI: Yes
Using glxSwapIntervalEXT.

As the result, listening to the received and demodulated transmission is
impossible. The waterfall spectrum display and SDR tuning works correctly.

#1084177#10
Date:
2024-10-26 13:50:49 UTC
From:
To:
I have run:
( strace CubicSDR ) > /tmp/strace.dump 2>&1

attached is the result.
CubicSDR attempts to access the audio device via pulseaudio, via
pipewire and via alsa, but for unknown reason it always fails.

#1084177#15
Date:
2025-02-15 03:52:17 UTC
From:
To:
I believe this bug is actually a bug in the soapysdr package.  My Ubuntu
bug report <https://bugs.launchpad.net/ubuntu/+source/soapysdr/+bug/2098548>
.

Thanks,
Jon Skanes

$ SoapySDRUtil --find
######################################################
## Soapy SDR -- the SDR abstraction library ##
######################################################

[INFO] [UHD] linux; GNU C++ version 13.3.0; Boost_108300; UHD_4.7.0.0+ds1-2
ALSA lib control.c:1570:(snd_ctl_open_noupdate) Invalid CTL pulse
ALSA lib control.c:1570:(snd_ctl_open_noupdate) Invalid CTL pulse

RtApi::getDeviceInfo: deviceId argument not found.

RtApi::getDeviceInfo: deviceId argument not found.

RtApi::getDeviceInfo: deviceId argument not found.

RtApi::getDeviceInfo: deviceId argument not found.

RtApi::getDeviceInfo: deviceId argument not found.

RtApi::getDeviceInfo: deviceId argument not found.

RtApi::getDeviceInfo: deviceId argument not found.

Found Rafael Micro R820T tuner
Found device 0
  driver = rtlsdr
  label = Generic RTL2832U OEM :: 00000001
  manufacturer = Realtek
  product = RTL2838UHIDIR
  serial = 00000001
  tuner = Rafael Micro R820T

#1084177#20
Date:
2026-02-02 00:56:37 UTC
From:
To:
I've attached a patch for the Debian cubicsdr-0.2.7+dfsg package which
fixes device enumeration with RTAudio's 6.0 API.

Older versions of the RTAudio API referenced audio devices by their
enumerated index. Version 6.0.0 completely changed the device enumeration
API such that devices are referenced by their integer deviceId instead.
Since index and deviceId are both ints, this weirdly didn't change the
method signature for getDeviceInfo(), so code continued to compile but
didn't actually return valid audio device info.

https://caml.music.mcgill.ca/~gary/rtaudio/probe.html

The Debian package was patched with `rtaudio6.patch` to deal with error
handling API changes, but no patches were applied for device enumeration.

Like the other reports for this issue, the out-of-the-box Trixie package
failed to enumerate my audio devices, though it knew how many audio devices
I had. After rebuilding with this patch, CubicSDR finally enumerates their
details, defaults to the default ALSA output device, and actually lets me
hear demodulated SDR signals. I've also attached the console output showing
that it correctly enumerated six audio devices on my system.

Another comment on this issue suggests a SoapySDR issue as cause and
referenced Ubuntu bug 2098548, and I confirm that `SoapySDRUtil --find`
fails to enumerate audio devices and references this same RTAudio
`getDeviceInfo()` API. However I believe CubicSDR uses SoapySDR for SDR
enumeration, not audio device enumeration. So it may be that the same bug
exists independently in SoapySDR, but it doesn't actually affect CubicSDR.
A quick grep through the SoapySDR 0.8 source didn't turn up direct RTAudio
use, so I'm not sure how they're connected. Other SoapySDR applications
work out of the box on Trixie, including Gqrx.

- DR