USB Dac (Qudelix-T71) Stuck -20db

Hi Guys,

Hoping someone can help. I’ve got a Qudelix-T71 which is always stuck at -20db on the input setting. I contacted Qudelix and they said anything that supports UAC-1 and UAC-2 shouldn’t have this issue. Is there something I need to change in Pipewire settings to allow full support?

Clutching at straws really but hoping someone else might have had a similar experience.

Thanks in advance.

I literally just noticed and I helped find the udev ids on the Qudelix forum.

1 Like

Your post over there was super helpful initially so thank you. Now if only we could solve this :slight_smile:

I found this can’t test now but may be of help.
https://bbs.archlinux.org/viewtopic.php?id=252602

If anyone with Pipewire or ALSA Knowledge want to help here’s what I get from wpctl inspect.

Device

id 53, type PipeWire:Interface:Device
    alsa.card = "0"
    alsa.card_name = "Qudelix-T71 2.0"
    alsa.components = "USB1fc9:7302"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "Q20"
    alsa.long_card_name = "Qudelix,Inc. Qudelix-T71 2.0 at usb-0000:4d:00.0-3, high speed"
    alsa.mixer_name = "USB Mixer"
    api.acp.auto-port = "false"
    api.alsa.card = "0"
    api.alsa.card.longname = "Qudelix,Inc. Qudelix-T71 2.0 at usb-0000:4d:00.0-3, high speed"
    api.alsa.card.name = "Qudelix-T71 2.0"
    api.alsa.path = "hw:0"
    api.alsa.use-acp = "true"
    api.dbus.ReserveDevice1 = "Audio0"
    api.dbus.ReserveDevice1.Priority = "-20"
  * client.id = "40"
  * device.api = "alsa"
    device.bus = "usb"
    device.bus-id = "usb-Qudelix_Inc._Qudelix-T71_2.0_1.0.0-00"
    device.bus-path = "pci-0000:4d:00.0-usb-0:3:1.0"
  * device.description = "Qudelix-T71 2.0 "
    device.enum.api = "udev"
    device.icon-name = "audio-card-analog-usb"
  * device.name = "alsa_card.usb-Qudelix_Inc._Qudelix-T71_2.0_1.0.0-00"
  * device.nick = "Qudelix-T71 2.0"
    device.plugged.usec = "7074637"
    device.product.id = "0x7302"
    device.product.name = "Qudelix-T71 2.0 "
    device.serial = "Qudelix_Inc._Qudelix-T71_2.0_1.0.0"
    device.string = "0"
    device.subsystem = "sound"
    device.sysfs.path = "/devices/pci0000:00/0000:00:02.1/0000:45:00.0/0000:46:0c.0/0000:4d:00.0/usb3/3-3/3-3:1.0/sound/card0"
    device.vendor.id = "0x1fc9"
    device.vendor.name = "NXP Semiconductors"
  * factory.id = "14"
  * media.class = "Audio/Device"
    object.path = "alsa:pcm:0"
  * object.serial = "468"

Sink

id 118, type PipeWire:Interface:Node
    alsa.card = "0"
    alsa.card_name = "Qudelix-T71 2.0"
    alsa.class = "generic"
    alsa.components = "USB1fc9:7302"
    alsa.device = "0"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "Q20"
    alsa.long_card_name = "Qudelix,Inc. Qudelix-T71 2.0 at usb-0000:4d:00.0-3, high speed"
    alsa.mixer_name = "USB Mixer"
    alsa.name = "USB Audio"
    alsa.resolution_bits = "32"
    alsa.subclass = "generic-mix"
    alsa.subdevice = "0"
    alsa.subdevice_name = "subdevice #0"
    api.alsa.card.longname = "Qudelix,Inc. Qudelix-T71 2.0 at usb-0000:4d:00.0-3, high speed"
    api.alsa.card.name = "Qudelix-T71 2.0"
    api.alsa.path = "front:0"
    api.alsa.pcm.card = "0"
    api.alsa.pcm.stream = "playback"
    audio.adapt.follower = ""
    audio.channels = "2"
    audio.position = "FL,FR"
    card.profile.device = "1"
  * client.id = "40"
    clock.quantum-limit = "8192"
    device.api = "alsa"
    device.class = "sound"
  * device.id = "53"
    device.profile.description = "Analog Stereo"
    device.profile.name = "analog-stereo"
    device.routes = "1"
  * factory.id = "18"
    factory.mode = "merge"
    factory.name = "api.alsa.pcm.sink"
    library.name = "audioconvert/libspa-audioconvert"
  * media.class = "Audio/Sink"
  * node.description = "Qudelix-T71 2.0  Analog Stereo"
    node.driver = "true"
  * node.name = "alsa_output.usb-Qudelix_Inc._Qudelix-T71_2.0_1.0.0-00.analog-stereo"
  * node.nick = "Qudelix-T71 2.0"
    node.pause-on-idle = "false"
  * object.path = "alsa:pcm:0:front:0:playback"
  * object.serial = "810"
  * priority.driver = "1009"
  * priority.session = "1009"

EDIT

Here’s ALSA as well

> amixer -c$Q20
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 65536 [100%] [on]
  Front Right: Playback 65536 [100%] [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 65536
  Front Left: Capture 65536 [100%] [on]
  Front Right: Capture 65536 [100%] [on]

I use pulseaudio on pipewire, and as you can see :

pactl list sinks 
Sink #296
	State: SUSPENDED
	Name: alsa_output.usb-Topping_E50-00.HiFi__hw_E50_0__sink
	Description: E50 Headphones
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: yes
	Volume: front-left: 32662 /  50% / -18,15 dB,   front-right: 32662 /  50% / -18,15 dB
	        balance 0,00
	Base Volume: 65536 / 100% / 0,00 dB

Base Volume shows 0 dB for 100% of the volume.

Same here

Sink #229
	State: SUSPENDED
	Name: alsa_output.usb-Qudelix_Inc._Qudelix-T71_2.0_1.0.0-00.analog-stereo
	Description: Qudelix-T71 2.0  Analog Stereo
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: yes
	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: alsa_output.usb-Qudelix_Inc._Qudelix-T71_2.0_1.0.0-00.analog-stereo.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
	Properties:
		alsa.card = "2"
		alsa.card_name = "Qudelix-T71 2.0"
		alsa.class = "generic"
		alsa.components = "USB1fc9:7302"
		alsa.device = "0"
		alsa.driver_name = "snd_usb_audio"
		alsa.id = "Q20"
		alsa.long_card_name = "Qudelix,Inc. Qudelix-T71 2.0 at usb-0000:4d:00.0-3, high speed"
		alsa.mixer_name = "USB Mixer"
		alsa.name = "USB Audio"
		alsa.resolution_bits = "32"
		alsa.subclass = "generic-mix"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		api.alsa.card.longname = "Qudelix,Inc. Qudelix-T71 2.0 at usb-0000:4d:00.0-3, high speed"
		api.alsa.card.name = "Qudelix-T71 2.0"
		api.alsa.path = "front:2"
		api.alsa.pcm.card = "2"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		card.profile.device = "1"
		device.api = "alsa"
		device.class = "sound"
		device.id = "136"
		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 = "Qudelix-T71 2.0 "
		node.name = "alsa_output.usb-Qudelix_Inc._Qudelix-T71_2.0_1.0.0-00.analog-stereo"
		node.nick = "Qudelix-T71 2.0"
		node.pause-on-idle = "false"
		object.path = "alsa:pcm:2:front:2:playback"
		priority.driver = "1009"
		priority.session = "1009"
		factory.id = "18"
		clock.quantum-limit = "8192"
		client.id = "40"
		node.driver = "true"
		factory.mode = "merge"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "123"
		object.serial = "229"
		api.acp.auto-port = "false"
		api.alsa.card = "2"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio2"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.bus = "usb"
		device.bus-id = "usb-Qudelix_Inc._Qudelix-T71_2.0_1.0.0-00"
		device.bus_path = "pci-0000:4d:00.0-usb-0:3:1.0"
		device.enum.api = "udev"
		device.icon_name = "audio-card-analog-usb"
		device.name = "alsa_card.usb-Qudelix_Inc._Qudelix-T71_2.0_1.0.0-00"
		device.nick = "Qudelix-T71 2.0"
		device.plugged.usec = "6980056"
		device.product.id = "0x7302"
		device.product.name = "Qudelix-T71 2.0 "
		device.serial = "Qudelix_Inc._Qudelix-T71_2.0_1.0.0"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:02.1/0000:45:00.0/0000:46:0c.0/0000:4d:00.0/usb3/3-3/3-3:1.0/sound/card2"
		device.vendor.id = "0x1fc9"
		device.vendor.name = "NXP Semiconductors"
		device.string = "2"
	Ports:
		analog-output: Analog Output (type: Analog, priority: 9900, availability unknown)
	Active Port: analog-output
	Formats:
		pcm

It looks like Linux doesn’t touch the main volume only the FR and FL and looking at a similar issue from android

It seems that for some reason Linux isn’t reporting the right value

Interesting fact PS5 Mode reports the correct value.