Page 3 of 4
Re: After 2.4 update
Posted: Sun Jan 25, 2026 4:03 pm
by k.s.deviate
Now i understand why qpwgraphs flow looks the way it does after boot. Its the correct way.. I get audio now for some reason, it is crackly and a little quieter than expected but it seems to work. idk why now and not before.
Any ideas into the crackling at volume change? it seems to be the most audible while AA is open.

- PXL_20260125_162848248.jpg (4.14 MiB) Viewed 183 times
Re: After 2.4 update
Posted: Sun Jan 25, 2026 5:48 pm
by hudiy
We tried to reproduce your setup. We connected headphones instead of a Bluetooth amplifier, but it should work the same way from PipeWire's perspective. Everything worked out of the box and we didn't observe any audio glitches. The routing generated by PipeWire looks identical.

- 20260125_18h32m14s_grim.png (125.38 KiB) Viewed 176 times
pactl list sinks
Code: Select all
Sink #55
State: SUSPENDED
Name: alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo
Description: Audio Adapter (Unitek Y-247A) Analog Stereo
Driver: PipeWire
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 26214 / 40% / -23.88 dB, front-right: 26214 / 40% / -23.88 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "0"
alsa.card_name = "USB Audio Device"
alsa.class = "generic"
alsa.components = "USB0d8c:0014"
alsa.device = "0"
alsa.driver_name = "snd_usb_audio"
alsa.id = "USB Audio"
alsa.long_card_name = "C-Media Electronics Inc. USB Audio Device at usb-0000:01:00.0-1.3, full speed"
alsa.mixer_name = "USB Mixer"
alsa.name = "USB Audio"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.sync.id = "00000000:00000000:00000000:00000000"
api.alsa.card.longname = "C-Media Electronics Inc. USB Audio Device at usb-0000:01:00.0-1.3, full speed"
api.alsa.card.name = "USB Audio Device"
api.alsa.path = "front:0"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "3"
device.api = "alsa"
device.class = "sound"
device.icon_name = "audio-card-analog"
device.id = "48"
device.profile.description = "Analog Stereo"
device.profile.name = "analog-stereo"
device.routes = "1"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "Audio Adapter (Unitek Y-247A)"
node.name = "alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo"
node.nick = "USB Audio Device"
node.pause-on-idle = "false"
object.path = "alsa:acp:Device:3:playback"
port.group = "playback"
priority.driver = "1009"
priority.session = "1009"
factory.id = "19"
clock.quantum-limit = "8192"
client.id = "47"
node.driver = "true"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "55"
object.serial = "55"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "0"
api.alsa.split-enable = "true"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio0"
api.dbus.ReserveDevice1.Priority = "-20"
device.bus = "usb"
device.bus-id = "usb-C-Media_Electronics_Inc._USB_Audio_Device-00"
device.bus_path = "platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.3:1.0"
device.enum.api = "udev"
device.name = "alsa_card.usb-C-Media_Electronics_Inc._USB_Audio_Device-00"
device.nick = "USB Audio Device"
device.plugged.usec = "6662726"
device.product.id = "0x0014"
device.product.name = "Audio Adapter (Unitek Y-247A)"
device.serial = "C-Media_Electronics_Inc._USB_Audio_Device"
device.subsystem = "sound"
sysfs.path = "/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/sound/card0"
device.vendor.id = "0x0d8c"
device.vendor.name = "C-Media Electronics, Inc."
spa.object.id = "2"
device.string = "0"
Ports:
analog-output-speaker: Speakers (type: Speaker, priority: 10000, availability unknown)
Active Port: analog-output-speaker
Formats:
pcm
Sink #85
State: RUNNING
Name: bluez_output.74_45_CE_FF_FF_FF.1
Description: WH-CH510
Driver: PipeWire
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 42315 / 65% / -11.40 dB, front-right: 42315 / 65% / -11.40 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: bluez_output.74_45_CE_FF_FF_FF.1.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
Properties:
api.bluez5.address = "74:45:CE:FF:FF:FF"
api.bluez5.codec = "sbc"
api.bluez5.profile = "a2dp-sink"
api.bluez5.transport = ""
bluez5.loopback = "false"
card.profile.device = "1"
device.id = "79"
device.routes = "1"
factory.name = "api.bluez5.a2dp.sink"
device.description = "WH-CH510"
node.name = "bluez_output.74_45_CE_FF_FF_FF.1"
node.pause-on-idle = "false"
priority.driver = "1010"
priority.session = "1010"
spa.object.id = "1"
factory.id = "12"
clock.quantum-limit = "8192"
device.api = "bluez5"
media.class = "Audio/Sink"
media.name = "WH-CH510"
node.driver = "true"
port.group = "stream.0"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "80"
object.serial = "85"
client.id = "47"
node.driver-id = "56"
api.bluez5.class = "0x240404"
api.bluez5.connection = "connected"
api.bluez5.device = ""
api.bluez5.icon = "audio-headset"
api.bluez5.path = "/org/bluez/hci0/dev_74_45_CE_FF_FF_FF"
bluez5.auto-connect = "[ hfp_hf hsp_hs a2dp_sink hfp_ag hsp_ag a2dp_source ]"
bluez5.profile = "off"
device.alias = "WH-CH510"
device.bus = "bluetooth"
device.form_factor = "headset"
device.icon_name = "audio-headset-bluetooth"
device.name = "bluez_card.74_45_CE_FF_FF_FF"
device.product.id = "0x223b"
device.string = "74:45:CE:FF:FF:FF"
device.vendor.id = "bluetooth:005d"
Ports:
headset-output: Headset (type: Headset, priority: 0, available)
Active Port: headset-output
Formats:
pcm
Sink #97
State: RUNNING
Name: hudiy_equalizer_sink
Description: hudiy_equalizer_sink Sink
Driver: PipeWire
Sample Specification: float32le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 536870916
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: hudiy_equalizer_sink.monitor
Latency: 0 usec, configured 0 usec
Flags: DECIBEL_VOLUME LATENCY
Properties:
node.name = "hudiy_equalizer_sink"
media.class = "Audio/Sink"
device.class = "filter"
audio.channels = "2"
audio.position = "[ FL, FR ]"
node.group = "ladspa-sink-536870916"
pulse.module.id = "536870916"
device.description = "hudiy_equalizer_sink Sink"
node.link-group = "filter-chain-1281-13"
node.virtual = "true"
resample.prefill = "true"
resample.disable = "true"
media.name = "hudiy_equalizer_sink Sink input"
stream.is-live = "true"
node.want-driver = "true"
node.autoconnect = "true"
port.group = "stream.0"
adapt.follower.spa-node = ""
object.register = "false"
factory.id = "7"
clock.quantum-limit = "8192"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
client.id = "89"
object.id = "90"
object.serial = "97"
node.driver-id = "56"
Formats:
pcm
Sink #112
State: RUNNING
Name: echo_cancel_sink
Description: Echo-Cancel Sink
Driver: PipeWire
Sample Specification: float32le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 536870917
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: echo_cancel_sink.monitor
Latency: 0 usec, configured 0 usec
Flags: DECIBEL_VOLUME LATENCY
Properties:
node.name = "echo_cancel_sink"
pulse.module.id = "536870917"
device.description = "Echo-Cancel Sink"
media.class = "Audio/Sink"
node.group = "echo-cancel-1281-14"
node.link-group = "echo-cancel-1281-14"
node.virtual = "true"
audio.channels = "2"
audio.position = "[ FL, FR ]"
resample.prefill = "true"
node.latency = "480/48000"
media.name = "Echo-Cancel Sink"
stream.is-live = "true"
node.want-driver = "true"
port.group = "stream.0"
adapt.follower.spa-node = ""
object.register = "false"
factory.id = "7"
clock.quantum-limit = "8192"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
client.id = "100"
object.id = "103"
object.serial = "112"
node.driver-id = "56"
Formats:
pcm
pactl list sources
Code: Select all
Source #55
State: SUSPENDED
Name: alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo.monitor
Description: Monitor of Audio Adapter (Unitek Y-247A) Analog Stereo
Driver: PipeWire
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "0"
alsa.card_name = "USB Audio Device"
alsa.class = "generic"
alsa.components = "USB0d8c:0014"
alsa.device = "0"
alsa.driver_name = "snd_usb_audio"
alsa.id = "USB Audio"
alsa.long_card_name = "C-Media Electronics Inc. USB Audio Device at usb-0000:01:00.0-1.3, full speed"
alsa.mixer_name = "USB Mixer"
alsa.name = "USB Audio"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.sync.id = "00000000:00000000:00000000:00000000"
api.alsa.card.longname = "C-Media Electronics Inc. USB Audio Device at usb-0000:01:00.0-1.3, full speed"
api.alsa.card.name = "USB Audio Device"
api.alsa.path = "front:0"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "3"
device.api = "alsa"
device.class = "monitor"
device.icon_name = "audio-card-analog"
device.id = "48"
device.profile.description = "Analog Stereo"
device.profile.name = "analog-stereo"
device.routes = "1"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "Audio Adapter (Unitek Y-247A)"
node.name = "alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo"
node.nick = "USB Audio Device"
node.pause-on-idle = "false"
object.path = "alsa:acp:Device:3:playback"
port.group = "playback"
priority.driver = "1009"
priority.session = "1009"
factory.id = "19"
clock.quantum-limit = "8192"
client.id = "47"
node.driver = "true"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "55"
object.serial = "55"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "0"
api.alsa.split-enable = "true"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio0"
api.dbus.ReserveDevice1.Priority = "-20"
device.bus = "usb"
device.bus-id = "usb-C-Media_Electronics_Inc._USB_Audio_Device-00"
device.bus_path = "platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.3:1.0"
device.enum.api = "udev"
device.name = "alsa_card.usb-C-Media_Electronics_Inc._USB_Audio_Device-00"
device.nick = "USB Audio Device"
device.plugged.usec = "6662726"
device.product.id = "0x0014"
device.product.name = "Audio Adapter (Unitek Y-247A)"
device.serial = "C-Media_Electronics_Inc._USB_Audio_Device"
device.subsystem = "sound"
sysfs.path = "/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/sound/card0"
device.vendor.id = "0x0d8c"
device.vendor.name = "C-Media Electronics, Inc."
spa.object.id = "2"
device.string = "0"
Ports:
analog-output-speaker: Speakers (type: Speaker, priority: 10000, availability unknown)
Active Port: analog-output-speaker
Formats:
pcm
Source #56
State: RUNNING
Name: alsa_input.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.mono-fallback
Description: Audio Adapter (Unitek Y-247A) Mono
Driver: PipeWire
Sample Specification: s16le 1ch 48000Hz
Channel Map: mono
Owner Module: 4294967295
Mute: no
Volume: mono: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 27111 / 41% / -23.00 dB
Monitor of Sink: n/a
Latency: 0 usec, configured 0 usec
Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "0"
alsa.card_name = "USB Audio Device"
alsa.class = "generic"
alsa.components = "USB0d8c:0014"
alsa.device = "0"
alsa.driver_name = "snd_usb_audio"
alsa.id = "USB Audio"
alsa.long_card_name = "C-Media Electronics Inc. USB Audio Device at usb-0000:01:00.0-1.3, full speed"
alsa.mixer_name = "USB Mixer"
alsa.name = "USB Audio"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.sync.id = "00000000:00000000:00000000:00000000"
api.alsa.card.longname = "C-Media Electronics Inc. USB Audio Device at usb-0000:01:00.0-1.3, full speed"
api.alsa.card.name = "USB Audio Device"
api.alsa.path = "hw:0"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "capture"
audio.channels = "1"
audio.position = "MONO"
card.profile.device = "2"
device.api = "alsa"
device.class = "sound"
device.icon_name = "audio-card-analog"
device.id = "48"
device.profile.description = "Mono"
device.profile.name = "mono-fallback"
device.routes = "1"
factory.name = "api.alsa.pcm.source"
media.class = "Audio/Source"
device.description = "Audio Adapter (Unitek Y-247A)"
node.name = "alsa_input.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.mono-fallback"
node.nick = "USB Audio Device"
node.pause-on-idle = "false"
object.path = "alsa:acp:Device:2:capture"
port.group = "capture"
priority.driver = "2000"
priority.session = "2000"
factory.id = "19"
clock.quantum-limit = "8192"
client.id = "47"
node.driver = "true"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "56"
object.serial = "56"
node.max-latency = "16384/48000"
api.alsa.period-size = "128"
api.alsa.period-num = "256"
api.alsa.headroom = "128"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "0"
api.alsa.split-enable = "true"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio0"
api.dbus.ReserveDevice1.Priority = "-20"
device.bus = "usb"
device.bus-id = "usb-C-Media_Electronics_Inc._USB_Audio_Device-00"
device.bus_path = "platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.3:1.0"
device.enum.api = "udev"
device.name = "alsa_card.usb-C-Media_Electronics_Inc._USB_Audio_Device-00"
device.nick = "USB Audio Device"
device.plugged.usec = "6662726"
device.product.id = "0x0014"
device.product.name = "Audio Adapter (Unitek Y-247A)"
device.serial = "C-Media_Electronics_Inc._USB_Audio_Device"
device.subsystem = "sound"
sysfs.path = "/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/sound/card0"
device.vendor.id = "0x0d8c"
device.vendor.name = "C-Media Electronics, Inc."
spa.object.id = "2"
device.string = "0"
Ports:
analog-input-mic: Microphone (type: Mic, priority: 8700, availability unknown)
Active Port: analog-input-mic
Formats:
pcm
Source #85
State: RUNNING
Name: bluez_output.74_45_CE_FF_FF_FF.1.monitor
Description: Monitor of WH-CH510
Driver: PipeWire
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: bluez_output.74_45_CE_FF_FF_FF.1
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
api.bluez5.address = "74:45:CE:FF:FF:FF"
api.bluez5.codec = "sbc"
api.bluez5.profile = "a2dp-sink"
api.bluez5.transport = ""
bluez5.loopback = "false"
card.profile.device = "1"
device.id = "79"
device.routes = "1"
factory.name = "api.bluez5.a2dp.sink"
device.description = "WH-CH510"
node.name = "bluez_output.74_45_CE_FF_FF_FF.1"
node.pause-on-idle = "false"
priority.driver = "1010"
priority.session = "1010"
spa.object.id = "1"
factory.id = "12"
clock.quantum-limit = "8192"
device.api = "bluez5"
media.class = "Audio/Sink"
media.name = "WH-CH510"
node.driver = "true"
port.group = "stream.0"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "80"
object.serial = "85"
client.id = "47"
node.driver-id = "56"
api.bluez5.class = "0x240404"
api.bluez5.connection = "connected"
api.bluez5.device = ""
api.bluez5.icon = "audio-headset"
api.bluez5.path = "/org/bluez/hci0/dev_74_45_CE_FF_FF_FF"
bluez5.auto-connect = "[ hfp_hf hsp_hs a2dp_sink hfp_ag hsp_ag a2dp_source ]"
bluez5.profile = "off"
device.alias = "WH-CH510"
device.bus = "bluetooth"
device.form_factor = "headset"
device.icon_name = "audio-headset-bluetooth"
device.name = "bluez_card.74_45_CE_FF_FF_FF"
device.product.id = "0x223b"
device.string = "74:45:CE:FF:FF:FF"
device.vendor.id = "bluetooth:005d"
device.class = "monitor"
Ports:
headset-output: Headset (type: Headset, priority: 0, available)
Active Port: headset-output
Formats:
pcm
Source #97
State: RUNNING
Name: hudiy_equalizer_sink.monitor
Description: Monitor of hudiy_equalizer_sink Sink
Driver: PipeWire
Sample Specification: float32le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 536870916
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: hudiy_equalizer_sink
Latency: 0 usec, configured 0 usec
Flags: DECIBEL_VOLUME LATENCY
Properties:
node.name = "hudiy_equalizer_sink"
media.class = "Audio/Sink"
device.class = "monitor"
audio.channels = "2"
audio.position = "[ FL, FR ]"
node.group = "ladspa-sink-536870916"
pulse.module.id = "536870916"
device.description = "hudiy_equalizer_sink Sink"
node.link-group = "filter-chain-1281-13"
node.virtual = "true"
resample.prefill = "true"
resample.disable = "true"
media.name = "hudiy_equalizer_sink Sink input"
stream.is-live = "true"
node.want-driver = "true"
node.autoconnect = "true"
port.group = "stream.0"
adapt.follower.spa-node = ""
object.register = "false"
factory.id = "7"
clock.quantum-limit = "8192"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
client.id = "89"
object.id = "90"
object.serial = "97"
node.driver-id = "56"
Formats:
pcm
Source #111
State: IDLE
Name: echo_cancel_source
Description: Echo-Cancel Source
Driver: PipeWire
Sample Specification: float32le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 536870917
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: n/a
Latency: 0 usec, configured 0 usec
Flags: DECIBEL_VOLUME LATENCY
Properties:
node.name = "echo_cancel_source"
pulse.module.id = "536870917"
device.description = "Echo-Cancel Source"
media.class = "Audio/Source"
node.group = "echo-cancel-1281-14"
node.link-group = "echo-cancel-1281-14"
node.virtual = "true"
audio.channels = "2"
audio.position = "[ FL, FR ]"
resample.prefill = "true"
node.latency = "480/48000"
media.name = "Echo-Cancel Source"
stream.is-live = "true"
node.want-driver = "true"
port.group = "stream.0"
adapt.follower.spa-node = ""
object.register = "false"
factory.id = "7"
clock.quantum-limit = "8192"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
client.id = "100"
object.id = "102"
object.serial = "111"
node.driver-id = "56"
Formats:
pcm
Source #112
State: RUNNING
Name: echo_cancel_sink.monitor
Description: Monitor of Echo-Cancel Sink
Driver: PipeWire
Sample Specification: float32le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 536870917
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: echo_cancel_sink
Latency: 0 usec, configured 0 usec
Flags: DECIBEL_VOLUME LATENCY
Properties:
node.name = "echo_cancel_sink"
pulse.module.id = "536870917"
device.description = "Echo-Cancel Sink"
media.class = "Audio/Sink"
node.group = "echo-cancel-1281-14"
node.link-group = "echo-cancel-1281-14"
node.virtual = "true"
audio.channels = "2"
audio.position = "[ FL, FR ]"
resample.prefill = "true"
node.latency = "480/48000"
media.name = "Echo-Cancel Sink"
stream.is-live = "true"
node.want-driver = "true"
port.group = "stream.0"
adapt.follower.spa-node = ""
object.register = "false"
factory.id = "7"
clock.quantum-limit = "8192"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
client.id = "100"
object.id = "103"
object.serial = "112"
node.driver-id = "56"
device.class = "monitor"
Formats:
pcm
Re: After 2.4 update
Posted: Sun Jan 25, 2026 7:27 pm
by k.s.deviate
hudiy wrote: Sun Jan 25, 2026 5:48 pm
We tried to reproduce your setup. We connected headphones instead of a Bluetooth amplifier, but it should work the same way from PipeWire's perspective. Everything worked out of the box and we didn't observe any audio glitches. The routing generated by PipeWire looks identical.
20260125_18h32m14s_grim.png
Could it be that I dont have a defined source? I see you have the qtm-pulse stream.. set as input to the hudiy_equalizer_sink.
Re: After 2.4 update
Posted: Sun Jan 25, 2026 7:43 pm
by hudiy
QtmPulseStream on the screenshot is just a sink input (in this case from Android Auto). Sink inputs appear automatically once you start playback in any app (Hudiy, web browser, vlc, etc).
We also checked the PipeWire GitLab and found several issues regarding Bluetooth devices where volume control doesn't work. It’s possible your amplifier is one of those devices:
https://gitlab.freedesktop.org/pipewire ... ssues/3786
https://gitlab.freedesktop.org/pipewire ... ssues/4793
https://gitlab.freedesktop.org/pipewire ... ssues/3225
You can try to add your device to the /usr/share/spa-0.2/bluez5/bluez-hardware.conf and check if that helps.
Code: Select all
{ address = "~^e9:a7:26:", no-features = [ hw-volume ]}, # DSP audio5.0 V1
Re: After 2.4 update
Posted: Sun Jan 25, 2026 8:13 pm
by k.s.deviate
I had a feeling I might be experiencing interference with bluetooth. I put a usb bluetooth adapter and swapped over to it and, everything works as expected. I had read somewhere that usb 3.0 devices interfere with bluetooth on the pi4, I'm using a usb 3.0 drive to boot from.
Would adding my device to ~/bluez-hardware.conf be advantageous?
Re: After 2.4 update
Posted: Sun Jan 25, 2026 8:20 pm
by hudiy
If it is not the issue with volume control then you shouldn't modify bluez-hardware.conf.
If your setup works stable with external Bluetooth adapter it might indicate some incompatibility between your amplifier and built-in BRCM chip.
Kernel communicates with built-in Bluetooth chip via PL011 UART which seems to be unrelated to the USB.
Re: After 2.4 update
Posted: Sun Jan 25, 2026 9:04 pm
by k.s.deviate
From initial search, but there are documented accounts.
The Raspberry Pi 4 is widely known to experience radio frequency (RF) interference between its USB 3.0 ports and wireless signals, specifically Bluetooth and 2.4 GHz Wi-Fi. This interference occurs because the high-speed data transmission on USB 3.0 generates noise in the 2.4 GHz spectrum, which is the exact frequency used by Bluetooth.
Common Symptoms
Reduced Range: Bluetooth devices (keyboards, controllers, sensors) only work when within 1–2 meters of the Pi.
Connection Instability: Frequent disconnects, "stuttering" inputs, or failure to pair even if the device is detected.
Total Failure: In some cases, high-speed SSD activity on a USB 3.0 port can completely "jam" the Bluetooth controller.
Re: After 2.4 update
Posted: Sun Jan 25, 2026 9:19 pm
by hudiy
We did some googling, and there are indeed a lot of reports that USB 3.0 causes interference with Bluetooth and 2.4GHz WiFi on Pi4. Thanks for pointing it out. Apparently, the problem doesn't occur when devices are connected to USB 2.0 ports.
Re: After 2.4 update
Posted: Fri Jan 30, 2026 6:59 pm
by k.s.deviate
Some weird behavior, audio still wont automatically play through the bluetooth dsp. A few days ago i could get audio to work by selecting the dsp in the audio dropdown and then going into Hudiy. This is qpwgraph after selecting it
https://imgur.com/sVEixzk and here is a video and a few pictures showing what qpwgraph looks like immediately after exiting Hudiy.
https://imgur.com/SeZscUk https://imgur.com/B8bxgiU https://imgur.com/FV2T0Rz
https://imgur.com/5JgQQvu
However, now, (I changed nothing) I still have to select the dsp from the dropdown but qpwgraph looks like this
https://imgur.com/vvHOFVj and it looks like this after exiting Hudiy
https://imgur.com/cGkRdHA
Re: After 2.4 update
Posted: Fri Jan 30, 2026 7:32 pm
by hudiy
Does your amplifier always connect to Bluetooth before Hudiy starts? Looking at qpwgraph, it seems like sometimes the echo cancel and equalizer load before the amplifier connects, causing WirePlumber to create different routing.
You could try adding a wait for a specific sink before Hudiy starts. Alternatively, you can specify a specific master for the echo-cancel module:
hudiy_startup.sh
Code: Select all
#!/bin/bash
EC_SINK="echo_cancel_sink"
EC_SOURCE="echo_cancel_source"
EQ_SINK="hudiy_equalizer_sink"
AMP_SINK="bluez_output.E9_A7_26_03_1E_82.1"
sink_exists() { pactl list short sinks 2>/dev/null | awk '{print $2}' | grep -Fxq "$1"; }
until pactl info >/dev/null 2>&1; do sleep 0.1; done
while ! sink_exists "$AMP_SINK"; do
sleep 1
done
sink_exists "$EQ_SINK" || pactl load-module module-ladspa-sink sink_name="$EQ_SINK" master="$EC_SINK" plugin=hudiy_equalizer label=hudiy_equalizer control=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
sink_exists "$EC_SINK" || pactl load-module module-echo-cancel aec_method=webrtc aec_args=\"voice_detection=false\" source_name="$EC_SOURCE" sink_name="$EC_SINK" sink_master="$AMP_SINK"
pactl set-default-sink "$EQ_SINK"
pactl set-default-source "$EC_SOURCE"
$HOME/.hudiy/share/hudiy &
Also remove the wireplumber cache:
Code: Select all
cd $HOME/.local/state/wireplumber
rm -rf *