After 2.4 update

k.s.deviate
Posts: 39
Joined: Mon Nov 24, 2025 7:32 pm

Re: After 2.4 update

Post 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
PXL_20260125_162848248.jpg (4.14 MiB) Viewed 182 times
hudiy
Site Admin
Posts: 440
Joined: Mon Jul 14, 2025 7:42 pm

Re: After 2.4 update

Post 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
20260125_18h32m14s_grim.png (125.38 KiB) Viewed 175 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
k.s.deviate
Posts: 39
Joined: Mon Nov 24, 2025 7:32 pm

Re: After 2.4 update

Post 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.
hudiy
Site Admin
Posts: 440
Joined: Mon Jul 14, 2025 7:42 pm

Re: After 2.4 update

Post 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
k.s.deviate
Posts: 39
Joined: Mon Nov 24, 2025 7:32 pm

Re: After 2.4 update

Post 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?
hudiy
Site Admin
Posts: 440
Joined: Mon Jul 14, 2025 7:42 pm

Re: After 2.4 update

Post 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.
k.s.deviate
Posts: 39
Joined: Mon Nov 24, 2025 7:32 pm

Re: After 2.4 update

Post 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.
hudiy
Site Admin
Posts: 440
Joined: Mon Jul 14, 2025 7:42 pm

Re: After 2.4 update

Post 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.
k.s.deviate
Posts: 39
Joined: Mon Nov 24, 2025 7:32 pm

Re: After 2.4 update

Post 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
hudiy
Site Admin
Posts: 440
Joined: Mon Jul 14, 2025 7:42 pm

Re: After 2.4 update

Post 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 *
Post Reply