You are not logged in.
I've got those fancy hyped headphones and they are really good, however, they lack configuration on Linux, as it's kind of defaulting to a wrong settings.
Here is what I am trying to do:
Force switch to pro audio profile
Rename devices, so it shows "Audeze Maxwell Chat" and "Audeze Maxwell Game" as you would expect in Windows and/or MacOS
Force select "Audeze Maxwell Game" as default audio output
Set device's all PCMs to 100%
So far I managed to achieve only 2nd, while 3rd and 1st "steps" kind of automatic due to KDE Plasma taking care of? How do I get step #4 to be automatic using wireplumber?
P.S. Step 4 is basically this:
amixer -c 1 sset 'PCM',0 100%; amixer -c 1 sset 'PCM',1 100%; amixer -c 1 sset 'Mic',0 100%
Here is the file
~/.config/wireplumber/wireplumber.conf.d/audeze-maxwell.conf
I managed to create and at least renaming works great:
monitor.alsa.rules = [
# Configure device
{
matches = [
{
device.name = "~alsa_card.usb-Audeze_LLC_Audeze_Maxwell_.*"
}
]
actions = {
update-props = {
#...
}
}
},
# Configure Chat output
{
matches = [
{
node.name = "~alsa_output.usb-Audeze_LLC_Audeze_Maxwell_.+.pro-output-0"
}
],
actions = {
update-props = {
node.description = "Audeze Maxwell Chat",
device.form-factor = "headset",
device.icon-name = "audio-headset-symbolic",
priority.session = 100,
node.nick = "maxwell-chat"
}
}
},
# Configure Game output
{
matches = [
{
node.name = "~alsa_output.usb-Audeze_LLC_Audeze_Maxwell_.+.pro-output-1"
}
],
actions = {
update-props = {
node.description = "Audeze Maxwell Game",
device.form-factor = "headphones",
device.icon-name = "audio-headphones-symbolic",
priority.session = 900,
node.nick = "maxwell-game"
}
}
}
]
Offline
If you don't use amixer but a mixer that is pipewire/pulse aware like pactl/wpctl or so then these volume adjustments should stick and get reapplied by default.
That said since this is a "classic" gaming headset usecase these actually do normally have a working profile config already and you might just need to add some udev rules.
ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf"
in some /etc/udev/rules.d/91-custom-pipewire-alsa.rules where xxxx and yyyy are the vendorid and productid you can get from e.g. lsusb.
If you use that instead of your wireplumber config, do the profiles get generated correctly? What outputs do you get from
aplay -l
amixer -c0 #or whatever the appropriate card index is
lsusb
pactl list cards
pactl list sinks
currently?
Last edited by V1del (2025-10-16 14:40:53)
Offline
Hi. I think I would need to clarify few things. UDEV rule might not be needed:
Pro Audio profile is persistent, as it's somehow controlled by KDE Plasma. Not an issue here, but I would prefer (if possible) to force remove other profiles, or force this Pro Audio profile every time I connect those headphones, no matter what other profile has been enabled before.
PCM volume in alsamixer persists to some extent - when I reconnect the USB Dongle. But when I reboot my PC, it resets to some random level (~45%). I am unable to edit this audio level using wireplumber. Note that the way USB dongle works is that it is not detected by a PC unless I turn on headphones, so running any commands on boot isn't a viable solution (or the solution I would want). Any better way to set it, rather than doing manually? I would prefer some configuration file, either wireplumber, or some alsa configuration file...
Reason why I am trying to achieve all this (instead of setting manually) is because I would like to share final configuration with the community on several sites, so users generally can have better experience who are using these awesome headphones.
Here is the output you requested:
Output of aplay -l:
**** List of PLAYBACK Hardware Devices ****
card 3: Dongle [Audeze Maxwell XBOX Dongle], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: Dongle [Audeze Maxwell XBOX Dongle], device 1: USB Audio [USB Audio #1]
Subdevices: 1/1
Subdevice #0: subdevice #0
Output of amixer -cX:
Simple mixer control 'PCM',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 73
Mono:
Front Left: Playback 36 [49%] [-38.00dB] [on]
Front Right: Playback 36 [49%] [-38.00dB] [on]
Simple mixer control 'PCM',1
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 73
Mono:
Front Left: Playback 73 [100%] [-1.00dB] [on]
Front Right: Playback 73 [100%] [-1.00dB] [on]
Simple mixer control 'Mic',0
Capabilities: cvolume cvolume-joined cswitch cswitch-joined
Capture channels: Mono
Limits: Capture 0 - 73
Mono: Capture 73 [100%] [-1.00dB] [on]
Output of lsusb:
Bus 003 Device 015: ID 3329:4b18 Audeze LLC Audeze Maxwell XBOX Dongle
Output of pactl list cards:
Card #478
Name: alsa_card.usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01
Driver: alsa
Owner Module: n/a
Properties:
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "3"
api.alsa.card.longname = "Audeze LLC Audeze Maxwell XBOX Dongle at usb-0000:00:14.0-9, high speed"
api.alsa.card.name = "Audeze Maxwell XBOX Dongle"
api.alsa.path = "hw:3"
api.alsa.split-enable = "true"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio3"
api.dbus.ReserveDevice1.Priority = "-20"
device.api = "alsa"
device.bus = "usb"
device.bus-id = "usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01"
device.bus_path = "pci-0000:00:14.0-usb-0:9:1.1"
device.description = "Audeze Maxwell XBOX Dongle"
device.enum.api = "udev"
device.icon_name = "audio-card-analog-usb"
device.name = "alsa_card.usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01"
device.nick = "Audeze Maxwell XBOX Dongle"
device.plugged.usec = "5353795096"
device.product.id = "0x4b18"
device.product.name = "Audeze Maxwell XBOX Dongle"
device.serial = "Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9:1.1/sound/card3"
device.vendor.id = "0x3329"
device.vendor.name = "Audeze LLC"
media.class = "Audio/Device"
spa.object.id = "8"
factory.id = "15"
client.id = "40"
object.id = "79"
object.serial = "478"
object.path = "alsa:acp:Dongle"
alsa.card = "3"
alsa.card_name = "Audeze Maxwell XBOX Dongle"
alsa.long_card_name = "Audeze LLC Audeze Maxwell XBOX Dongle at usb-0000:00:14.0-9, high speed"
alsa.driver_name = "snd_usb_audio"
alsa.mixer_name = "USB Mixer"
alsa.components = "USB3329:4b18"
alsa.id = "Dongle"
device.string = "3"
Profiles:
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
output:analog-stereo+input:mono-fallback: Analog Stereo Output + Mono Input (sinks: 1, sources: 1, priority: 6501, available: yes)
output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 6500, available: yes)
output:iec958-stereo+input:mono-fallback: Digital Stereo (IEC958) Output + Mono Input (sinks: 1, sources: 1, priority: 5501, available: yes)
output:iec958-stereo: Digital Stereo (IEC958) Output (sinks: 1, sources: 0, priority: 5500, available: yes)
output:iec958-ac3-surround-51+input:mono-fallback: Digital Surround 5.1 (IEC958/AC3) Output + Mono Input (sinks: 1, sources: 1, priority: 301, available: yes)
output:iec958-ac3-surround-51: Digital Surround 5.1 (IEC958/AC3) Output (sinks: 1, sources: 0, priority: 300, available: yes)
pro-audio: Pro Audio (sinks: 2, sources: 1, priority: 1, available: yes)
input:mono-fallback: Mono Input (sinks: 0, sources: 1, priority: 1, available: yes)
Active Profile: pro-audio
Ports:
analog-input-mic: Microphone (type: Mic, priority: 8700, latency offset: 0 usec, availability unknown)
Properties:
port.type = "mic"
device.icon_name = "audio-input-microphone"
card.profile.port = "0"
Part of profile(s): input:mono-fallback, output:analog-stereo+input:mono-fallback, output:iec958-stereo+input:mono-fallback, output:iec958-ac3-surround-51+input:mono-fallback
analog-output: Analog Output (type: Analog, priority: 9900, latency offset: 0 usec, availability unknown)
Properties:
port.type = "analog"
card.profile.port = "1"
Part of profile(s): output:analog-stereo, output:analog-stereo+input:mono-fallback
iec958-stereo-output: Digital Output (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown)
Properties:
port.type = "spdif"
card.profile.port = "2"
Part of profile(s): output:iec958-stereo, output:iec958-stereo+input:mono-fallback
Output of pactl list sinks:
Sink #479
State: SUSPENDED
Name: alsa_output.usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01.pro-output-0
Description: Audeze Maxwell Chat
Driver: PipeWire
Sample Specification: s24le 2ch 48000Hz
Channel Map: aux0,aux1
Owner Module: 4294967295
Mute: no
Volume: aux0: 65536 / 100% / 0.00 dB, aux1: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01.pro-output-0.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "3"
alsa.card_name = "Audeze Maxwell XBOX Dongle"
alsa.class = "generic"
alsa.components = "USB3329:4b18"
alsa.device = "0"
alsa.driver_name = "snd_usb_audio"
alsa.id = "USB Audio"
alsa.long_card_name = "Audeze LLC Audeze Maxwell XBOX Dongle at usb-0000:00:14.0-9, high speed"
alsa.mixer_name = "USB Mixer"
alsa.name = "USB Audio"
alsa.resolution_bits = "24"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.sync.id = "00000000:00000000:00000000:00000000"
api.alsa.card.longname = "Audeze LLC Audeze Maxwell XBOX Dongle at usb-0000:00:14.0-9, high speed"
api.alsa.card.name = "Audeze Maxwell XBOX Dongle"
api.alsa.path = "hw:3,0"
api.alsa.pcm.card = "3"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "AUX0,AUX1"
card.profile.device = "0"
clock.name = "api.alsa.3"
device.api = "alsa"
device.bus = "usb"
device.class = "sound"
device.form_factor = "headset"
device.icon_name = "audio-headset-symbolic"
device.id = "79"
device.profile.description = "Pro"
device.profile.name = "pro-output-0"
device.profile.pro = "true"
device.routes = "0"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "Audeze Maxwell XBOX Dongle"
node.name = "alsa_output.usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01.pro-output-0"
node.nick = "maxwell-chat"
node.pause-on-idle = "false"
object.path = "alsa:acp:Dongle:0:playback"
port.group = "playback"
priority.driver = "1600"
priority.session = "100"
factory.id = "19"
clock.quantum-limit = "8192"
client.id = "40"
node.driver = "true"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "82"
object.serial = "479"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "3"
api.alsa.split-enable = "true"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio3"
api.dbus.ReserveDevice1.Priority = "-20"
device.bus-id = "usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01"
device.bus_path = "pci-0000:00:14.0-usb-0:9:1.1"
device.enum.api = "udev"
device.name = "alsa_card.usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01"
device.nick = "Audeze Maxwell XBOX Dongle"
device.plugged.usec = "5353795096"
device.product.id = "0x4b18"
device.product.name = "Audeze Maxwell XBOX Dongle"
device.serial = "Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9:1.1/sound/card3"
device.vendor.id = "0x3329"
device.vendor.name = "Audeze LLC"
spa.object.id = "8"
device.string = "3"
Formats:
pcm
Sink #480
State: SUSPENDED
Name: alsa_output.usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01.pro-output-1
Description: Audeze Maxwell Game
Driver: PipeWire
Sample Specification: s24le 2ch 48000Hz
Channel Map: aux0,aux1
Owner Module: 4294967295
Mute: no
Volume: aux0: 19661 / 30% / -31.37 dB, aux1: 19661 / 30% / -31.37 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01.pro-output-1.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "3"
alsa.card_name = "Audeze Maxwell XBOX Dongle"
alsa.class = "generic"
alsa.components = "USB3329:4b18"
alsa.device = "1"
alsa.driver_name = "snd_usb_audio"
alsa.id = "USB Audio"
alsa.long_card_name = "Audeze LLC Audeze Maxwell XBOX Dongle at usb-0000:00:14.0-9, high speed"
alsa.mixer_name = "USB Mixer"
alsa.name = "USB Audio #1"
alsa.resolution_bits = "24"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.sync.id = "00000000:00000000:00000000:00000000"
api.alsa.card.longname = "Audeze LLC Audeze Maxwell XBOX Dongle at usb-0000:00:14.0-9, high speed"
api.alsa.card.name = "Audeze Maxwell XBOX Dongle"
api.alsa.path = "hw:3,1"
api.alsa.pcm.card = "3"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "AUX0,AUX1"
card.profile.device = "1"
clock.name = "api.alsa.3"
device.api = "alsa"
device.bus = "usb"
device.class = "sound"
device.form_factor = "headphones"
device.icon_name = "audio-headphones-symbolic"
device.id = "79"
device.profile.description = "Pro 1"
device.profile.name = "pro-output-1"
device.profile.pro = "true"
device.routes = "0"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "Audeze Maxwell XBOX Dongle"
node.name = "alsa_output.usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01.pro-output-1"
node.nick = "maxwell-game"
node.pause-on-idle = "false"
object.path = "alsa:acp:Dongle:1:playback"
port.group = "playback"
priority.driver = "1328"
priority.session = "900"
factory.id = "19"
clock.quantum-limit = "8192"
client.id = "40"
node.driver = "true"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "80"
object.serial = "480"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "3"
api.alsa.split-enable = "true"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio3"
api.dbus.ReserveDevice1.Priority = "-20"
device.bus-id = "usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01"
device.bus_path = "pci-0000:00:14.0-usb-0:9:1.1"
device.enum.api = "udev"
device.name = "alsa_card.usb-Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000-01"
device.nick = "Audeze Maxwell XBOX Dongle"
device.plugged.usec = "5353795096"
device.product.id = "0x4b18"
device.product.name = "Audeze Maxwell XBOX Dongle"
device.serial = "Audeze_LLC_Audeze_Maxwell_XBOX_Dongle_0000000000000000"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9:1.1/sound/card3"
device.vendor.id = "0x3329"
device.vendor.name = "Audeze LLC"
spa.object.id = "8"
device.string = "3"
Formats:
pcm
Last edited by definitellynotspammer (2025-10-17 08:11:07)
Offline