JDSP4Linux icon indicating copy to clipboard operation
JDSP4Linux copied to clipboard

idk if its a bug, or just me.

Open kalishxern opened this issue 2 months ago • 7 comments

yuda@localhost:~> sudo nano /etc/pipewire/client.conf.d/99-jamesdsp.conf yuda@localhost:~> sudo nano /etc/pipewire/pipewire.conf.d/99-custom.conf yuda@localhost:~> cat /etc/pipewire/client.conf.d/99-jamesdsp.conf context.properties = { default.clock.quantum = 2048 default.clock.min-quantum = 256 default.clock.max-quantum = 2048 } yuda@localhost:~> cat /etc/pipewire/pipewire.conf.d/99-custom.conf context.properties = { default.clock.rate = 48000 default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 ] default.clock.quantum = 2048 default.clock.min-quantum = 256 default.clock.max-quantum = 2048 } yuda@localhost:~> systemctl --user restart pipewire pipewire-pulse wireplumber yuda@localhost:~> jamesdsp [10:11:59.591] [INF] main::main: Application version: d3cea5a (Pipewire flavor) [10:11:59.592] [INF] main::main: Qt library version: 6.10.0 [10:11:59.592] [INF] main::main: Using language: en_US [10:11:59.592] [DBG] main::main: Launched by system session manager: no [10:11:59.592] [INF] main::main: Last session crashed unexpectedly. A crash report has been saved here: /tmp/jamesdsp/crash-prev.dmp [10:11:59.618] [INF] SingleInstanceMonitor::isServiceReady: Service registration successful [10:11:59.943] [INF] MainWindow::MainWindow$ctor: ============ Initializing audio service ============ [10:11:59.944] [INF] MainWindow::MainWindow$ctor: Compiled with PipeWire support. [10:11:59.944] [INF] MainWindow::MainWindow$ctor: This application flavor does not support PulseAudio. [10:11:59.944] [INF] MainWindow::MainWindow$ctor: If you want to use this application with PulseAudio, you need to recompile this app with proper support enabled. [10:11:59.944] [INF] MainWindow::MainWindow$ctor: Refer to the README for more detailed information. [10:11:59.945] [INF] MainWindow::MainWindow$ctor: [10:11:59.945] [DBG] MainWindow::MainWindow$ctor: Blocklisted apps: [10:11:59.945] [DBG] MainWindow::MainWindow$ctor: Blocklist mode: block [10:11:59.953] [DBG] PwPipelineManager::PwPipelineManager$ctor: compiled with PipeWire: 1.5.83 [10:11:59.954] [DBG] PwPipelineManager::PwPipelineManager$ctor: linked to PipeWire: 1.5.83 [W][10:11:59.956783] pw.conf | [ conf.c: 1204 pw_conf_load_conf_for_context()] setting config.name to client-rt.conf is deprecated, using client.conf [10:12:00.005] [DBG] PwPipelineManager::on_core_info: core version: 1.5.83 [10:12:00.014] [DBG] PwPipelineManager::on_core_info: core name: pipewire-0 [10:12:00.024] [DBG] PwPipelineManager::on_registry_global: found metadata: settings [10:12:00.024] [DBG] PwPipelineManager::on_registry_global: found metadata: schema-sm-settings [10:12:00.025] [DBG] PwPipelineManager::on_registry_global: found metadata: persistent-sm-settings [10:12:00.025] [DBG] PwPipelineManager::on_registry_global: found metadata: sm-settings [10:12:00.025] [DBG] PwPipelineManager::on_registry_global: found metadata: sm-objects [10:12:00.026] [DBG] PwPipelineManager::on_registry_global: found metadata: default [10:12:00.026] [DBG] PwPipelineManager::on_registry_global: found metadata: filters [10:12:00.026] [DBG] PwPipelineManager::on_registry_global: found metadata: route-settings [10:12:00.027] [DBG] PwPipelineManager::on_registry_global: Audio/Sink 59 alsa_output.pci-0000_00_0e.0.analog-stereo with serial 59 has been added [10:12:00.027] [DBG] PwPipelineManager::on_registry_global: Audio/Source 60 alsa_input.pci-0000_00_0e.0.analog-stereo with serial 60 has been added [10:12:00.030] [DBG] PwPipelineManager::on_registry_global: Audio/Sink 71 jamesdsp_sink with serial 76 has been added [10:12:00.033] [DBG] PwPipelineManager::PwPipelineManager$ctor: jamesdsp_sink node successfully retrieved with id 71 and serial 76 [10:12:00.036] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 0, default.configured.audio.sink, Spa:String:JSON, {"name":"alsa_output.pci-0000_00_0e.0.analog-stereo"} [10:12:00.037] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 0, default.audio.sink, Spa:String:JSON, {"name":"alsa_output.pci-0000_00_0e.0.analog-stereo"} [10:12:00.037] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 0, default.audio.source, Spa:String:JSON, {"name":"alsa_input.pci-0000_00_0e.0.analog-stereo"} [10:12:00.037] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 0, default.video.source, Spa:String:JSON, {"name":"v4l2_input.pci-0000_00_15.0-usb-0_8_1.0"} [10:12:00.160] [DBG] PwBasePlugin::connect_to_pw: @PwJamesDspPlugin: JamesDsp successfully connected to PipeWire graph [10:12:01.291] [INF] MainWindow::MainWindow$ctor: ============ Initializing user interface ============ [10:12:01.321] [DBG] DspHost::update: Config update started [10:12:01.321] [DBG] DspHost::update: Property changed: bass_enable -> QVariant(bool, false) [10:12:01.321] [DBG] DspHost::update: Property changed: bass_maxgain -> QVariant(QString, "5") [10:12:01.321] [DBG] DspHost::update: Property changed: compander_enable -> QVariant(bool, false) [10:12:01.321] [DBG] DspHost::update: Property changed: compander_response -> QVariant(QString, "95.0;200.0;400.0;800.0;1600.0;3400.0;7500.0;0;0;0;0;0;0;0") [10:12:01.322] [DBG] DspHost::update: Property changed: compander_granularity -> QVariant(QString, "2") [10:12:01.322] [DBG] DspHost::update: Property changed: compander_timeconstant -> QVariant(QString, "0.22000") [10:12:01.322] [DBG] DspHost::update: Property changed: compander_time_freq_transforms -> QVariant(QString, "0") [10:12:01.322] [DBG] DspHost::update: Property changed: convolver_enable -> QVariant(bool, false) [10:12:01.322] [DBG] DspHost::update: Property changed: convolver_file -> QVariant(QString, "") [10:12:01.322] [DBG] DspHost::update: Property changed: convolver_optimization_mode -> QVariant(QString, "0") [10:12:01.322] [DBG] DspHost::update: Property changed: convolver_waveform_edit -> QVariant(QString, "-80;-100;0;0;0;0") [10:12:01.322] [DBG] DspHost::update: Property changed: crossfeed_bs2b_fcut -> QVariant(QString, "700") [10:12:01.322] [DBG] DspHost::update: Property changed: crossfeed_bs2b_feed -> QVariant(QString, "60") [10:12:01.322] [DBG] DspHost::update: Property changed: crossfeed_enable -> QVariant(bool, false) [10:12:01.322] [DBG] DspHost::update: Property changed: crossfeed_mode -> QVariant(QString, "0") [10:12:01.323] [DBG] DspHost::update: Property changed: ddc_enable -> QVariant(bool, false) [10:12:01.323] [DBG] DspHost::update: Property changed: ddc_file -> QVariant(QString, "") [10:12:01.323] [DBG] DspHost::update: Property changed: graphiceq_enable -> QVariant(bool, false) [10:12:01.323] [DBG] DspHost::update: Property changed: graphiceq_param -> QVariant(QString, "GraphicEQ: 25 0; 40 0; 63 0; 100 0; 160 0; 250 0; 400 0; 630 0; 1000 0; 1600 0; 2500 0; 4000 0; 6300 0; 10000 0; 16000 0") [10:12:01.323] [DBG] DspHost::update: Property changed: reverb_bassboost -> QVariant(QString, "0.25000") [10:12:01.323] [DBG] DspHost::update: Property changed: reverb_decay -> QVariant(QString, "2.08000") [10:12:01.323] [DBG] DspHost::update: Property changed: reverb_delay -> QVariant(QString, "0.00000") [10:12:01.323] [DBG] DspHost::update: Property changed: reverb_enable -> QVariant(bool, false) [10:12:01.323] [DBG] DspHost::update: Property changed: reverb_finaldry -> QVariant(QString, "-7.00000") [10:12:01.323] [DBG] DspHost::update: Property changed: reverb_finalwet -> QVariant(QString, "-9.00000") [10:12:01.323] [DBG] DspHost::update: Property changed: reverb_lfo_spin -> QVariant(QString, "0.70000") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_lfo_wander -> QVariant(QString, "0.30000") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_lpf_bass -> QVariant(QString, "600") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_lpf_damp -> QVariant(QString, "9000") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_lpf_input -> QVariant(QString, "18000") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_lpf_output -> QVariant(QString, "17000") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_osf -> QVariant(QString, "1") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_reflection_amount -> QVariant(QString, "0.30000") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_reflection_factor -> QVariant(QString, "1.00000") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_reflection_width -> QVariant(QString, "0.70000") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_wet -> QVariant(QString, "-8.00000") [10:12:01.324] [DBG] DspHost::update: Property changed: reverb_width -> QVariant(QString, "1.00000") [10:12:01.325] [DBG] DspHost::update: Property changed: liveprog_enable -> QVariant(bool, false) [10:12:01.325] [DBG] DspHost::update: Property changed: liveprog_file -> QVariant(QString, "") [10:12:01.325] [DBG] DspHost::update: Property changed: master_enable -> QVariant(bool, true) [10:12:01.325] [DBG] DspHost::update: Property changed: master_limrelease -> QVariant(QString, "60") [10:12:01.325] [DBG] DspHost::update: Property changed: master_limthreshold -> QVariant(QString, "0") [10:12:01.325] [DBG] DspHost::update: Property changed: master_postgain -> QVariant(QString, "0") [10:12:01.325] [DBG] DspHost::update: Property changed: stereowide_enable -> QVariant(bool, false) [10:12:01.325] [DBG] DspHost::update: Property changed: stereowide_level -> QVariant(QString, "60") [10:12:01.325] [DBG] DspHost::update: Property changed: tone_enable -> QVariant(bool, false) [10:12:01.325] [DBG] DspHost::update: Property changed: tone_eq -> QVariant(QString, "25.0;40.0;63.0;100.0;160.0;250.0;400.0;630.0;1000.0;1600.0;2500.0;4000.0;6300.0;10000.0;16000.0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0") [10:12:01.328] [DBG] DspHost::update: Property changed: tone_filtertype -> QVariant(QString, "0") [10:12:01.331] [DBG] DspHost::update: Property changed: tone_interpolation -> QVariant(QString, "0") [10:12:01.335] [DBG] DspHost::update: Property changed: tube_enable -> QVariant(bool, false) [10:12:01.336] [DBG] DspHost::update: Property changed: tube_pregain -> QVariant(QString, "200") [10:12:01.337] [ERR] DspHost::updateConvolver: Impulse response is empty. Disabling convolver. [10:12:01.338] [WRN] DspHost::updateConvolver: Unable to read impulse response. No file selected or abnormal channel count? [10:12:01.338] [WRN] DspHost::reloadLiveprog: Referenced file does not exist anymore. Disabling liveprog. QFSFileEngine::open: No file name specified [10:12:01.338] [ERR] DspHost::reloadLiveprog: Cannot open file path. Disabling liveprog. QIODevice::read (QFile, ""): device not open [10:12:01.339] [WRN] DspHost::reloadLiveprog: @init section not found QFSFileEngine::open: No file name specified QFSFileEngine::open: No file name specified [10:12:01.855] [DBG] AssetManager::extractGroup: 5 assets extracted (type 0) [10:12:01.863] [DBG] AssetManager::extractGroup: 3 assets extracted (type 1) [10:12:03.240] [INF] MainWindow::MainWindow$ctor: UI initialized [10:12:03.604] [DBG] FilterContainer::FilterContainer$ctor::: Target output device added: alsa_output.pci-0000_00_0e.0.analog-stereo [10:12:03.607] [DBG] FilterContainer::disconnect_filters: disconnecting the JamesDsp filter from PipeWire [10:12:03.638] [DBG] PwBasePlugin::connect_to_pw: @PwJamesDspPlugin: JamesDsp successfully connected to PipeWire graph [10:12:03.672] [DBG] PipewireAudioService::PipewireAudioService$ctor::: new default output device: alsa_output.pci-0000_00_0e.0.analog-stereo [10:12:03.673] [DBG] FilterContainer::disconnect_filters: disconnecting the JamesDsp filter from PipeWire [10:12:03.727] [DBG] PwBasePlugin::connect_to_pw: @PwJamesDspPlugin: JamesDsp successfully connected to PipeWire graph [10:12:03.743] [DBG] PipewireAudioService::PipewireAudioService$ctor::: device alsa_card.pci-0000_00_0e.0 has changed its output route to: analog-output-headphones [10:12:08.066] [DBG] DspHost::update: Config update started [10:12:08.067] [DBG] DspHost::update: Property changed: compander_timeconstant -> QVariant(float, 0.22) [10:12:08.067] [DBG] DspHost::update: Property changed: reverb_decay -> QVariant(float, 2.08) [10:12:08.067] [DBG] DspHost::update: Property changed: reverb_lfo_spin -> QVariant(float, 0.7) [10:12:08.067] [DBG] DspHost::update: Property changed: reverb_lfo_wander -> QVariant(float, 0.3) [10:12:08.067] [DBG] DspHost::update: Property changed: reverb_reflection_amount -> QVariant(float, 0.3) [10:12:08.067] [DBG] DspHost::update: Property changed: reverb_reflection_width -> QVariant(float, 0.7) [10:12:23.353] [DBG] FilterContainer::on_link_changed::: No app linked to our device wants to play. Unlinking our filters. [10:12:23.353] [DBG] FilterContainer::disconnect_filters: disconnecting the JamesDsp filter from PipeWire Caught SIGSEGV (11) Collecting infomation about the crash... Failed to parse backtrace: jamesdsp() [0x67f74f]Done! Crash report saved to /tmp/jamesdsp/crash.dmp.

Consider to launch this application with the parameter '--spinlock-on-crash' to wait for a debugger in case of a crash. yuda@localhost:~> cat /tmp/jamesdsp/crash.dmp Caught SIGSEGV (11) in ??? Fault at memory location 0x5e67eb00 due to invalid permissions for mapped object (2). Thread 5768: jamesdsp === Context: R8:0 R9:0 R10:0 R11:cfa9ba78 R12:0 R13:0 R14:cfa9ba60 R15:0 RDI:4000 RSI:cfa9ba00 RBP:cfa9ba00 RBX:26d56208 RDX:0 RAX:5e674270 RCX:0 RSP:cfa9b9d8 RIP:5e67eb00 EFL:10202 CSGSFS:33 ERR:15 TRAPNO:e OLDMASK:0 CR2:5e67eb00 === Binary: Compile date: Nov 18 2025 09:10:01 GNU version: 150201 === Backtrace: jamesdsp400000[67f514] /usr/lib64/libc.so.65d800000[5d842910] /usr/lib64/libQt6Core.so.65e000000[5e67eb00] === Code: 5e67eac0: 60 4c 44 00 00 00 00 00 b0 69 44 00 00 00 00 00 f0 3a 44 00 00 00 00 00 5e67ead8: 50 a9 3c 5e d8 7f 00 00 70 80 3d 5e d8 7f 00 00 00 00 00 00 00 00 00 00 5e67eaf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>60 96 0f 01 00 00 00 00 5e67eb08: 14 87 5a 5e d8 7f 00 00 80 86 5a 5e d8 7f 00 00 50 78 3c 5e d8 7f 00 00 5e67eb20: 00 00 00 00 00 00 00 00 00 e9 67 5e d8 7f 00 00 00 00 00 00 00 00 00 00 5e67eb38: 70 a8 0f 01 00 00 00 00 === Local backtrace: Offset cannot be resolved: No offset present? 0x0000000000042910: ?? ??:0 0x000000000067eb00: safe_printf at ??:? === System: Linux version 6.17.6-1-default (geeko@buildhost) (gcc (SUSE Linux) 15.2.1 20251006, GNU ld (GNU Binutils; openSUSE Tumbleweed) 2.45.0.20251014-1) #1 SMP PREEMPT_DYNAMIC Wed Oct 29 17:21:06 UTC 2025 (9e452b6) 330e21a8d6d0408fa3f002869dd639dc LSB Version: n/a Distributor ID: openSUSE Description: openSUSE Tumbleweed Release: 20251114 Codename: n/a yuda@localhost:~>

kalishxern avatar Nov 18 '25 03:11 kalishxern

I had AI parse this. This is what it came up with:

Why This Happens Only on openSUSE

  • openSUSE ships PipeWire 1.2+ with aggressive low-latency defaults (min-quantum 32)
  • Their Qt6 is built with -O3 + LTO + GCC 15 → moves code around in a way that triggers the null deref in JamesDSP’s convolution init when min-quantum < 512
  • Fedora uses slightly different Qt flags and defaults to min-quantum 256 → survives
  • Ubuntu/Debian backport the fix or use older Qt → never see it

Copy and enter this code block verbatim, one go. Copy, paste, enter. EDIT: PLEASE READ THE CODE COMMENTS

sudo mkdir -p /etc/pipewire/pipewire.conf.d /etc/rtkit
sudo tee /etc/pipewire/pipewire.conf.d/99-jamesdsp-stable.conf > /dev/null <<EOF
context.properties = {
    default.clock.rate       = 48000
    default.clock.quantum    = 1024
    default.clock.min-quantum = 512
    default.clock.max-quantum = 2048
}
EOF

sudo tee /etc/rtkit/rtkit.conf > /dev/null <<EOF
RTKIT_NICE=-15
RTKIT_RTPRIO=90
RTKIT_RTTIME=2000000
EOF

sudo systemctl restart rtkit-daemon
systemctl --user restart pipewire pipewire-pulse wireplumber

# Remove your old quantum configs — they were actually too high on openSUSE
sudo rm /etc/pipewire/client.conf.d/99-jamesdsp.conf /etc/pipewire/pipewire.conf.d/99-custom.conf 2>/dev/null || true

# Launch the fixed way
jamesdsp --low-latency-mode

Fix for openSUSE Tumbleweed (and Leap if anyone ever hits it) when JamesDSP instantly SIGSEGVs with that exact crash dump on startup.

  • The problem is NOT your PipeWire quantum settings — those are fine.
  • The crash is a classic Qt6 + PipeWire 1.2+ realtime scheduling race that only hits openSUSE’s build of JamesDSP (their Qt6 + GCC 15 combo triggers a null-pointer deref in libQt6Core.so.6 the moment the DSP thread tries to allocate convolution buffers at high quantum).

I personally spun a VM of OpenSUSE and this works.

JWhite99 avatar Nov 21 '25 03:11 JWhite99

Hi, I'm using the flatpak version with openSUSE tumbleweed, it opens but nothing works.

It switches automatically to the "JamesDSP sink" then I lose all my sound, I need to switch back to my default sound output and now no one of the DSP effects work, all my audio is still flat.

Hope someone can help me to debug. I'm using KDE and pipewire.

JMarcosHP avatar Nov 28 '25 23:11 JMarcosHP

I started getting no sound from JamesDSP right when openSUSE Tumbleweed began shipping versions 1.5.8x of Pipewire (which are release candidates for 1.6) in its 20251018 snapshot (list of updated packages).

Previous stable 1.4.x versions were working just fine, so it seems something specifically in Pipewire 1.6 RCs or in its openSUSE packaging triggered the incompatibility with JamesDSP on my system. And I have no specific issue with this version of Pipewire other than with JamesDSP.


System information:

Distribution: Aeon Desktop (openSUSE Tumbleweed variant)
DE: Gnome 49.2
Pipewire version: 1.5.83 (1.6 RC3)
JamesDSP version: 2.7.0 (Flatpak)


JamesDSP logs when launched from the command line, playing and pausing music, then closing JamesDSP: no crash, so maybe this is a different issue altogether? Even if related to openSUSE Tumbleweed + Pipewire 1.6 RC

[00:31:48.589] [INF] SingleInstanceMonitor::isServiceReady: Service registration successful
[00:31:48.590] [INF] main::main: Application version: 2.7.0-36-g31f7973 (Pipewire flavor) 
[00:31:48.590] [INF] main::main: Qt library version: 6.8.3
[00:31:48.590] [INF] main::initAudioService: ============ Initializing audio service ============
[00:31:48.590] [INF] main::initAudioService: Compiled with PipeWire support.
[00:31:48.590] [INF] main::initAudioService: This application flavor does not support PulseAudio.
[00:31:48.590] [INF] main::initAudioService: If you want to use this application with PulseAudio, you need to recompile this app with proper support enabled.
[00:31:48.590] [INF] main::initAudioService: Refer to the README for more detailed information.
[00:31:48.590] [INF] main::initAudioService: 
[00:31:48.590] [DBG] main::initAudioService: Blocklisted apps: 
[00:31:48.590] [DBG] main::initAudioService: Blocklist mode: block
[00:31:48.594] [DBG] PwPipelineManager::PwPipelineManager$ctor: compiled with PipeWire: 1.2.4
[00:31:48.594] [DBG] PwPipelineManager::PwPipelineManager$ctor: linked to PipeWire: 1.2.4
[00:31:48.617] [DBG] PwPipelineManager::on_core_info: core version: 1.5.83
[00:31:48.617] [DBG] PwPipelineManager::on_core_info: core name: pipewire-0
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: found metadata: settings
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: found metadata: schema-sm-settings
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: found metadata: persistent-sm-settings
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: found metadata: sm-settings
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: found metadata: sm-objects
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: found metadata: default
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: found metadata: filters
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: found metadata: route-settings
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: Audio/Sink 55 alsa_output.pci-0000_00_1f.3.analog-stereo with serial 55 has been added
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: Audio/Source 56 alsa_input.pci-0000_00_1f.3.analog-stereo with serial 56 has been added
[00:31:48.634] [DBG] PwPipelineManager::on_registry_global: Audio/Sink 67 jamesdsp_sink with serial 72 has been added
[00:31:48.635] [DBG] PwPipelineManager::PwPipelineManager$ctor: jamesdsp_sink node successfully retrieved with id 67 and serial 72
[00:31:48.636] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 0, default.configured.audio.source, Spa:String:JSON, {"name":"alsa_input.pci-0000_00_1f.3.analog-stereo"}
[00:31:48.637] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 0, default.audio.sink, Spa:String:JSON, {"name":"alsa_output.pci-0000_00_1f.3.analog-stereo"}
[00:31:48.637] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 0, default.audio.source, Spa:String:JSON, {"name":"alsa_input.pci-0000_00_1f.3.analog-stereo"}
[00:31:48.637] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 0, default.video.source, Spa:String:JSON, {"name":"v4l2_input.pci-0000_00_14.0-usb-0_4_1.0"}
[00:31:48.748] [DBG] PwBasePlugin::connect_to_pw: @PwJamesDspPlugin: JamesDsp successfully connected to PipeWire graph
[00:31:48.962] [DBG] AssetManager::extractGroup: 5 assets extracted (type 0)
[00:31:48.970] [DBG] AssetManager::extractGroup: 3 assets extracted (type 1)
[00:31:48.972] [DBG] DspHost::update: Config update started
[00:31:48.972] [DBG] DspHost::update: Property changed: bass_enable -> QVariant(bool, false) 
[00:31:48.972] [DBG] DspHost::update: Property changed: bass_maxgain -> QVariant(QString, "5") 
[00:31:48.972] [DBG] DspHost::update: Property changed: compander_enable -> QVariant(bool, false) 
[00:31:48.972] [DBG] DspHost::update: Property changed: compander_response -> QVariant(QString, "\"95.0;200.0;400.0;800.0;1600.0;3400.0;7500.0;0;0;0;0;0;0;0\"") 
[00:31:48.972] [DBG] DspHost::update: Property changed: compander_granularity -> QVariant(QString, "2") 
[00:31:48.972] [DBG] DspHost::update: Property changed: compander_timeconstant -> QVariant(QString, "0.22") 
[00:31:48.973] [DBG] DspHost::update: Property changed: compander_time_freq_transforms -> QVariant(QString, "0") 
[00:31:48.973] [DBG] DspHost::update: Property changed: convolver_enable -> QVariant(bool, false) 
[00:31:48.973] [DBG] DspHost::update: Property changed: convolver_file -> QVariant(QString, "\"\"") 
[00:31:48.973] [DBG] DspHost::update: Property changed: convolver_optimization_mode -> QVariant(QString, "0") 
[00:31:48.973] [DBG] DspHost::update: Property changed: convolver_waveform_edit -> QVariant(QString, "\"-80;-100;0;0;0;0\"") 
[00:31:48.973] [DBG] DspHost::update: Property changed: crossfeed_bs2b_fcut -> QVariant(QString, "700") 
[00:31:48.974] [DBG] DspHost::update: Property changed: crossfeed_bs2b_feed -> QVariant(QString, "60") 
[00:31:48.974] [DBG] DspHost::update: Property changed: crossfeed_enable -> QVariant(bool, false) 
[00:31:48.974] [DBG] DspHost::update: Property changed: crossfeed_mode -> QVariant(QString, "0") 
[00:31:48.974] [DBG] DspHost::update: Property changed: ddc_enable -> QVariant(bool, false) 
[00:31:48.974] [DBG] DspHost::update: Property changed: ddc_file -> QVariant(QString, "\"\"") 
[00:31:48.974] [DBG] DspHost::update: Property changed: graphiceq_enable -> QVariant(bool, false) 
[00:31:48.974] [DBG] DspHost::update: Property changed: graphiceq_param -> QVariant(QString, "\"GraphicEQ: 25 0; 40 0; 63 0; 100 0; 160 0; 250 0; 400 0; 630 0; 1000 0; 1600 0; 2500 0; 4000 0; 6300 0; 10000 0; 16000 0\"") 
[00:31:48.974] [DBG] DspHost::update: Property changed: reverb_bassboost -> QVariant(QString, "0.25000") 
[00:31:48.975] [DBG] DspHost::update: Property changed: reverb_decay -> QVariant(QString, "2.10000") 
[00:31:48.975] [DBG] DspHost::update: Property changed: reverb_delay -> QVariant(QString, "0.00000") 
[00:31:48.975] [DBG] DspHost::update: Property changed: reverb_enable -> QVariant(bool, false) 
[00:31:48.975] [DBG] DspHost::update: Property changed: reverb_finaldry -> QVariant(QString, "-7.00000") 
[00:31:48.975] [DBG] DspHost::update: Property changed: reverb_finalwet -> QVariant(QString, "-9.00000") 
[00:31:48.975] [DBG] DspHost::update: Property changed: reverb_lfo_spin -> QVariant(QString, "0.70000") 
[00:31:48.975] [DBG] DspHost::update: Property changed: reverb_lfo_wander -> QVariant(QString, "0.30000") 
[00:31:48.975] [DBG] DspHost::update: Property changed: reverb_lpf_bass -> QVariant(QString, "600") 
[00:31:48.976] [DBG] DspHost::update: Property changed: reverb_lpf_damp -> QVariant(QString, "9000") 
[00:31:48.976] [DBG] DspHost::update: Property changed: reverb_lpf_input -> QVariant(QString, "18000") 
[00:31:48.976] [DBG] DspHost::update: Property changed: reverb_lpf_output -> QVariant(QString, "17000") 
[00:31:48.976] [DBG] DspHost::update: Property changed: reverb_osf -> QVariant(QString, "1") 
[00:31:48.976] [DBG] DspHost::update: Property changed: reverb_reflection_amount -> QVariant(QString, "0.30000") 
[00:31:48.976] [DBG] DspHost::update: Property changed: reverb_reflection_factor -> QVariant(QString, "1.00000") 
[00:31:48.976] [DBG] DspHost::update: Property changed: reverb_reflection_width -> QVariant(QString, "0.70000") 
[00:31:48.976] [DBG] DspHost::update: Property changed: reverb_wet -> QVariant(QString, "-8.00000") 
[00:31:48.976] [DBG] DspHost::update: Property changed: reverb_width -> QVariant(QString, "1.00000") 
[00:31:48.976] [DBG] DspHost::update: Property changed: liveprog_enable -> QVariant(bool, false) 
[00:31:48.976] [DBG] DspHost::update: Property changed: liveprog_file -> QVariant(QString, "\"\"") 
[00:31:48.976] [DBG] DspHost::update: Property changed: master_enable -> QVariant(bool, true) 
[00:31:48.976] [DBG] DspHost::update: Property changed: master_limrelease -> QVariant(QString, "60") 
[00:31:48.976] [DBG] DspHost::update: Property changed: master_limthreshold -> QVariant(QString, "0") 
[00:31:48.976] [DBG] DspHost::update: Property changed: master_postgain -> QVariant(QString, "0") 
[00:31:48.976] [DBG] DspHost::update: Property changed: stereowide_enable -> QVariant(bool, false) 
[00:31:48.976] [DBG] DspHost::update: Property changed: stereowide_level -> QVariant(QString, "60") 
[00:31:48.976] [DBG] DspHost::update: Property changed: tone_enable -> QVariant(bool, false) 
[00:31:48.976] [DBG] DspHost::update: Property changed: tone_eq -> QVariant(QString, "\"25.0;40.0;63.0;100.0;160.0;250.0;400.0;630.0;1000.0;1600.0;2500.0;4000.0;6300.0;10000.0;16000.0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0\"") 
[00:31:48.978] [DBG] DspHost::update: Property changed: tone_filtertype -> QVariant(QString, "0") 
[00:31:48.979] [DBG] DspHost::update: Property changed: tone_interpolation -> QVariant(QString, "0") 
[00:31:48.983] [DBG] DspHost::update: Property changed: tube_enable -> QVariant(bool, false) 
[00:31:48.983] [DBG] DspHost::update: Property changed: tube_pregain -> QVariant(QString, "200") 
[00:31:48.983] [ERR] DspHost::updateConvolver: Impulse response is empty. Disabling convolver.
[00:31:48.983] [WRN] DspHost::updateConvolver: Unable to read impulse response. No file selected or abnormal channel count?
[00:31:48.983] [WRN] DspHost::reloadLiveprog: Referenced file does not exist anymore. Disabling liveprog.
QFSFileEngine::open: No file name specified
[00:31:48.984] [ERR] DspHost::reloadLiveprog: Cannot open file path. Disabling liveprog.
QIODevice::read (QFile, ""): device not open
[00:31:48.984] [WRN] DspHost::reloadLiveprog: @init section not found
[00:31:48.987] [INF] main::main: Using language: fr_FR
[00:31:48.987] [DBG] main::main: Launched by system session manager: no
[00:31:49.557] [INF] MainWindow::MainWindow$ctor: ============ Initializing user interface ============
[00:31:49.563] [DBG] DspHost::update: Config update started
[00:31:50.147] [INF] MainWindow::MainWindow$ctor: UI initialized
[00:31:50.240] [INF] AutoStartManager::onPortalBackgroundRequest: Background request granted
[00:31:50.270] [DBG] FilterContainer::FilterContainer$ctor::<lambda>: Target output device added: alsa_output.pci-0000_00_1f.3.analog-stereo
[00:31:50.270] [DBG] FilterContainer::disconnect_filters: disconnecting the JamesDsp filter from PipeWire
[00:31:50.275] [DBG] PwBasePlugin::connect_to_pw: @PwJamesDspPlugin: JamesDsp successfully connected to PipeWire graph
[00:31:50.284] [DBG] PipewireAudioService::PipewireAudioService$ctor::<lambda>: new default output sink: alsa_output.pci-0000_00_1f.3.analog-stereo
[00:31:50.284] [DBG] FilterContainer::disconnect_filters: disconnecting the JamesDsp filter from PipeWire
[00:31:50.291] [DBG] PwBasePlugin::connect_to_pw: @PwJamesDspPlugin: JamesDsp successfully connected to PipeWire graph
[00:31:50.302] [DBG] PipewireAudioService::PipewireAudioService$ctor::<lambda>: output device has changed to: alsa_card.pci-0000_00_1f.3 via route analog-output-speaker
[00:31:50.302] [DBG] PipewireAudioService::PipewireAudioService$ctor::<lambda>: device alsa_card.pci-0000_00_1f.3 has changed its output route to: analog-output-speaker
[00:32:00.767] [DBG] FilterContainer::on_link_changed::<lambda>: No app linked to our device wants to play. Unlinking our filters.
[00:32:00.767] [DBG] FilterContainer::disconnect_filters: disconnecting the JamesDsp filter from PipeWire
[00:32:19.147] [DBG] BenchmarkWorker::process: Starting benchmark...
[00:32:23.679] [DBG] PwPipelineManager::on_registry_global: Stream/Output/Audio 77 Zen with serial 105 has been added
[00:32:23.689] [DBG] AppConfig::isAppBlocked: Zen is not blocked
[00:32:23.699] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 77, target.object, Spa:Id, 72
[00:32:23.699] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 77, target.node, Spa:Id, 67
[00:32:23.705] [DBG] PwPipelineManager::on_registry_global: Zen port 75 is connected to jamesdsp_sink port 68
[00:32:23.705] [DBG] PwPipelineManager::on_registry_global: Zen port 74 is connected to jamesdsp_sink port 69
[00:32:23.721] [DBG] FilterContainer::on_link_changed: At least one app linked to our device wants to play. Linking our filters.
[00:32:23.727] [DBG] PwBasePlugin::connect_to_pw: @PwJamesDspPlugin: JamesDsp successfully connected to PipeWire graph
[00:32:27.598] [DBG] PwPipelineManager::on_destroy_node_proxy: Stream/Output/Audio 77 Zen has been removed
[00:32:27.598] [DBG] PwPipelineManager::on_metadata_property: new metadata property: 77, , , 
[00:32:33.766] [DBG] FilterContainer::on_link_changed::<lambda>: No app linked to our device wants to play. Unlinking our filters.
[00:32:33.766] [DBG] FilterContainer::disconnect_filters: disconnecting the JamesDsp filter from PipeWire
[00:32:39.354] [KNL] Log::kernel: EffectDSPMain: Benchmark done
[00:32:41.982] [DBG] PwJamesDspPlugin::~PwJamesDspPlugin: @PwJamesDspPlugin: JamesDsp destroyed
QBasicTimer::start: QBasicTimer can only be used with threads started with QThread
QBasicTimer::start: QBasicTimer can only be used with threads started with QThread

Corresponding logs from journalctl -r:

nov. 30 00:32:42 localhost.localdomain systemd[2669]: app-flatpak-me.timschneeberger.jdsp4linux-2791963337.scope: Consumed 22.065s CPU time.
nov. 30 00:32:31 localhost.localdomain pipewire[3080]: pw.link: 0x55bd9ebff270: one of the nodes is in error out:suspended in:error
nov. 30 00:32:31 localhost.localdomain pipewire[3080]: pw.link: 0x55bd9ebfd4c0: one of the nodes is in error out:suspended in:error
nov. 30 00:32:31 localhost.localdomain pipewire[3080]: pw.link: 0x55bd9ebfd4c0: one of the nodes is in error out:suspended in:error
nov. 30 00:32:26 localhost.localdomain pipewire[3080]: pw.node: (jdsp_@PwJamesDspPlugin_JamesDsp-76) running -> error (error changing node state: Mauvais descripteur de fichier)
nov. 30 00:32:23 localhost.localdomain pipewire[3080]: pw.link: (76.1.0 -> 55.1.0) allocating -> error Buffer allocation failed (-9) (paused-paused)
nov. 30 00:32:23 localhost.localdomain pipewire[3080]: mod.client-node: 0x55bd9e792600: error seq:1057 -9 (port_use_buffers(1:1:-1) error: Mauvais descripteur de fichier)
nov. 30 00:32:23 localhost.localdomain pipewire[3080]: pw.core: 0x55bd9e4aa060: error -9 for resource 49: port_use_buffers(1:1:-1) error: Mauvais descripteur de fichier
nov. 30 00:32:23 localhost.localdomain pipewire[3080]: pw.link: (76.0.0 -> 55.0.0) allocating -> error Buffer allocation failed (-9) (paused-paused)
nov. 30 00:32:23 localhost.localdomain pipewire[3080]: mod.client-node: 0x55bd9e792600: error seq:1013 -9 (port_use_buffers(1:0:-1) error: Mauvais descripteur de fichier)
nov. 30 00:32:23 localhost.localdomain pipewire[3080]: pw.core: 0x55bd9e4aa060: error -9 for resource 49: port_use_buffers(1:0:-1) error: Mauvais descripteur de fichier
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: pw.link: (72.1.0 -> 55.1.0) allocating -> error Buffer allocation failed (-9) (paused-paused)
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: mod.client-node: 0x55bd9e792a80: error seq:747 -9 (port_use_buffers(1:1:-1) error: Mauvais descripteur de fichier)
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: pw.core: 0x55bd9e4aa060: error -9 for resource 57: port_use_buffers(1:1:-1) error: Mauvais descripteur de fichier
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: pw.link: (72.0.0 -> 55.0.0) allocating -> error Buffer allocation failed (-9) (paused-paused)
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: mod.client-node: 0x55bd9e792a80: error seq:695 -9 (port_use_buffers(1:0:-1) error: Mauvais descripteur de fichier)
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: pw.core: 0x55bd9e4aa060: error -9 for resource 57: port_use_buffers(1:0:-1) error: Mauvais descripteur de fichier
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: pw.link: (72.1.0 -> 55.1.0) allocating -> error Buffer allocation failed (-9) (paused-paused)
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: mod.client-node: 0x55bd9e792a80: error seq:523 -9 (port_use_buffers(1:1:-1) error: Mauvais descripteur de fichier)
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: pw.core: 0x55bd9e4aa060: error -9 for resource 56: port_use_buffers(1:1:-1) error: Mauvais descripteur de fichier
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: pw.link: (72.0.0 -> 55.0.0) allocating -> error Buffer allocation failed (-9) (paused-paused)
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: mod.client-node: 0x55bd9e792a80: error seq:506 -9 (port_use_buffers(1:0:-1) error: Mauvais descripteur de fichier)
nov. 30 00:31:50 localhost.localdomain pipewire[3080]: pw.core: 0x55bd9e4aa060: error -9 for resource 56: port_use_buffers(1:0:-1) error: Mauvais descripteur de fichier
nov. 30 00:31:48 localhost.localdomain pipewire[3080]: pw.link: (72.1.0 -> 55.1.0) allocating -> error Buffer allocation failed (-9) (paused-paused)
nov. 30 00:31:48 localhost.localdomain pipewire[3080]: mod.client-node: 0x55bd9e792a80: error seq:327 -9 (port_use_buffers(1:1:-1) error: Mauvais descripteur de fichier)
nov. 30 00:31:48 localhost.localdomain pipewire[3080]: pw.core: 0x55bd9e4aa060: error -9 for resource 45: port_use_buffers(1:1:-1) error: Mauvais descripteur de fichier
nov. 30 00:31:48 localhost.localdomain pipewire[3080]: pw.link: (72.0.0 -> 55.0.0) allocating -> error Buffer allocation failed (-9) (paused-paused)
nov. 30 00:31:48 localhost.localdomain pipewire[3080]: mod.client-node: 0x55bd9e792a80: error seq:316 -9 (port_use_buffers(1:0:-1) error: Mauvais descripteur de fichier)
nov. 30 00:31:48 localhost.localdomain pipewire[3080]: pw.core: 0x55bd9e4aa060: error -9 for resource 45: port_use_buffers(1:0:-1) error: Mauvais descripteur de fichier
nov. 30 00:31:47 localhost.localdomain systemd[2669]: Started app-flatpak-me.timschneeberger.jdsp4linux-2791963337.scope.

Fringale avatar Nov 30 '25 05:11 Fringale

Hi, I'm using the flatpak version with openSUSE tumbleweed, it opens but nothing works.

It switches automatically to the "JamesDSP sink" then I lose all my sound, I need to switch back to my default sound output and now no one of the DSP effects work, all my audio is still flat.

Hope someone can help me to debug. I'm using KDE and pipewire.

I am not on openSuse, but I experienced the same thing on Linux Arch with KDE. Do you have JamesDSP on Autostart? You probably need to add a delay to it starting, because it starts earlier than your device connecting.

Not sure if it helps in your case but my autostart-command now looks like this: bash -c 'sleep 180 && jamesdpsgui' --tray

In JamesDSP I enabled Standard-Outputdevice and disabled Benchmarks, maybe they are related.

LinusBehringer avatar Dec 01 '25 07:12 LinusBehringer

Great news, patched Pipewire 1.5.84 in openSUSE Tumbleweed fixed the Bad file descriptor errors I had with JamesDSP flatpak! It was part of the just-released 20251204 snapshot.

Does it work now on your side too @kalishxern @JMarcosHP?

Shoutout to the Pipewire guys for finding and fixing the compatibility problem, and to the Easy Effects folks for investigating, raising the issue to Pipewire, and submitting a backport patch to Tumbleweed.

Fringale avatar Dec 06 '25 06:12 Fringale

Oh i didnt upgrade my TW system yet, let me see and test if it works now.

JMarcosHP avatar Dec 06 '25 21:12 JMarcosHP

I upgraded my pipewire version and now it works without issues with the flatpak version.

Many thanks for sharing the links

JMarcosHP avatar Dec 06 '25 22:12 JMarcosHP

I started having a similar issue on Pop!_OS 24.04, with the Flatpak version.

Pipewire was upgraded from 1.4.2 to 1.5.84, and the JamesDSP virtual sink no longer works.

It's working fine with the native package jamesdsp-pipewire_2.7.0-30a30a_ubuntu22-04_amd64.deb, though.

lincolnthalles avatar Jan 13 '26 03:01 lincolnthalles

@lincolnthalles The incompatibility issue with the Flatpak version should be fixed in the next Pipewire release (via this Pipewire commit).

Fringale avatar Jan 13 '26 16:01 Fringale