5.1 audio channels randomly mixed up

Greetings! I am having a persistent audio issue and I wonder if someone else has run into this issue or knows more about possible solutions. The problem is, surround sound channels get mixed up at random moments and I have to manually switch (randomly) between available playback devices and modes to fix it (and then it again randomly breaks).

I am using SteelSeries Arena 9 (USB connection) set to 5.1 audio output. When I play audio - games, videos (both online and offline) - there is a chance the audio will be output from wrong channels, usually like this: FC → FL; FR → RR; FL → RL; RL→ C. It happens when audio begins (e.g. a file is opened and played or a game starts) and also when audio playback is paused and resumed. It is completely random.

When I then go into system settings and switch randomly between different audio devices and output modes (2.1, 4.1, 5.1), the issue disappears (also randomly - sometimes after a single change, sometimes I have to keep switching for a while), but inevitably, the problem reappears randomly again. This happens all the time and is very annoying.

Here’s what wpctl shows:

0. Audio/Sink    alsa_output.usb-SteelSeries_SteelSeries_Arena_9-00.analog-surround-51

And aplay:

aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault
    Default Audio Device
lavrate
    Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
    Rate Converter Plugin Using Samplerate Library
speexrate
    Rate Converter Plugin Using Speex Resampler
jack
    JACK Audio Connection Kit
oss
    Open Sound System
pipewire
    PipeWire Sound Server
pulse
    PulseAudio Sound Server
speex
    Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
default
    Default ALSA Output (currently PipeWire Media Server)
sysdefault:CARD=Audio
    USB Audio, USB Audio
    Default Audio Device
front:CARD=Audio,DEV=0
    USB Audio, USB Audio
    Front output / input
surround21:CARD=Audio,DEV=0
    USB Audio, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Audio,DEV=0
    USB Audio, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Audio,DEV=0
    USB Audio, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Audio,DEV=0
    USB Audio, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Audio,DEV=0
    USB Audio, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Audio,DEV=0
    USB Audio, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Audio,DEV=0
    USB Audio, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
iec958:CARD=Audio,DEV=1
    USB Audio, USB Audio #1
    IEC958 (S/PDIF) Digital Audio Output
usbstream:CARD=Audio
    USB Audio
    USB Stream Output
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, EV3237
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=1
    HDA ATI HDMI, HDMI 1
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=2
    HDA ATI HDMI, HDMI 2
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 3
    HDMI Audio Output
usbstream:CARD=HDMI
    HDA ATI HDMI
    USB Stream Output
hdmi:CARD=Generic_1,DEV=0
    HD-Audio Generic, HDMI 0
    HDMI Audio Output
hdmi:CARD=Generic_1,DEV=1
    HD-Audio Generic, HDMI 1
    HDMI Audio Output
hdmi:CARD=Generic_1,DEV=2
    HD-Audio Generic, HDMI 2
    HDMI Audio Output
hdmi:CARD=Generic_1,DEV=3
    HD-Audio Generic, HDMI 3
    HDMI Audio Output
usbstream:CARD=Generic_1
    HD-Audio Generic
    USB Stream Output
front:CARD=Generic
    Front output / input
surround21:CARD=Generic
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
usbstream:CARD=Generic
    HD-Audio Generic
    USB Stream Output
sysdefault:CARD=S9
    SteelSeries Arena 9, USB Audio
    Default Audio Device
front:CARD=S9,DEV=0
    SteelSeries Arena 9, USB Audio
    Front output / input
surround21:CARD=S9,DEV=0
    SteelSeries Arena 9, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=S9,DEV=0
    SteelSeries Arena 9, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=S9,DEV=0
    SteelSeries Arena 9, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=S9,DEV=0
    SteelSeries Arena 9, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=S9,DEV=0
    SteelSeries Arena 9, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=S9,DEV=0
    SteelSeries Arena 9, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=S9,DEV=0
    SteelSeries Arena 9, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
usbstream:CARD=S9
    SteelSeries Arena 9
    USB Stream Output

And finally:

inxi -Aax
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 48 HDMI/DP Audio
    driver: snd_hda_intel v: kernel pcie: gen: 5 speed: 32 GT/s lanes: 16
    bus-ID: 03:00.1 chip-ID: 1002:ab40 class-ID: 0403
  Device-2: Advanced Micro Devices [AMD/ATI] Radeon High Definition Audio
    vendor: Micro-Star MSI driver: snd_hda_intel v: kernel pcie: gen: 4
    speed: 16 GT/s lanes: 16 bus-ID: 7b:00.1 chip-ID: 1002:1640 class-ID: 0403
  Device-3: Advanced Micro Devices [AMD] Ryzen HD Audio
    vendor: Micro-Star MSI driver: snd_hda_intel v: kernel pcie: gen: 4
    speed: 16 GT/s lanes: 16 bus-ID: 7b:00.6 chip-ID: 1022:15e3 class-ID: 0403
  Device-4: Micro Star USB Audio driver: hid-generic,snd-usb-audio,usbhid
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-10:6
    chip-ID: 0db0:0b58 class-ID: 0300
  Device-5: SteelSeries ApS Arena 9 driver: hid-generic,snd-usb-audio,usbhid
    type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-3.1:10
    chip-ID: 1038:1a05 class-ID: 0300
  API: ALSA v: k6.18.3-2-cachyos status: kernel-api
    tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.4.9 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl

This audio issue has been going on ever since I switched to Linux in July and is a complete mystery to me. I had it on Kubuntu, which I used first for a few days after switching from Windows, then on PopOS and then on CachyOS.

Since it persists across various distributions, it may not be directly related to CachyOS per se, but rather to how audio works in Linux, but maybe someone knowledgeable here will know more. I have searched across various forums, but to no avail…

Edit: just to add a bit more device info, as the wpctl one-liner above was a bit short:

wpctl inspect 63
id 63, type PipeWire:Interface:Node
    alsa.card = "0"
    alsa.card_name = "SteelSeries Arena 9"
    alsa.class = "generic"
    alsa.components = "USB1038:1a05"
    alsa.device = "0"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "S9"
    alsa.long_card_name = "SteelSeries SteelSeries Arena 9 at usb-0000:15:00.0-3.1, 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 = "SteelSeries SteelSeries Arena 9 at usb-0000:15:00.0-3.1, full speed"
    api.alsa.card.name = "SteelSeries Arena 9"
    api.alsa.path = "surround51:0"
    api.alsa.pcm.card = "0"
    api.alsa.pcm.stream = "playback"
    audio.channels = "6"
    audio.position = "FL,FR,RL,RR,FC,LFE"
    card.profile.device = "7"
  * client.id = "41"
    clock.quantum-limit = "8192"
    device.api = "alsa"
    device.bus = "usb"
    device.class = "sound"
    device.icon-name = "audio-card-analog"
  * device.id = "50"
    device.profile.description = "Analog Surround 5.1"
    device.profile.name = "analog-surround-51"
    device.routes = "1"
  * factory.id = "19"
    factory.name = "api.alsa.pcm.sink"
    library.name = "audioconvert/libspa-audioconvert"
  * media.class = "Audio/Sink"
  * node.description = "SteelSeries Arena 9 Analog Surround 5.1"
    node.driver = "true"
    node.loop.name = "data-loop.0"
  * node.name = "alsa_output.usb-SteelSeries_SteelSeries_Arena_9-00.analog-surround-51"
  * node.nick = "SteelSeries Arena 9"
    node.pause-on-idle = "false"
  * object.path = "alsa:acp:S9:7:playback"
  * object.serial = "68"
    port.group = "playback"
  * priority.driver = "1109"
  * priority.session = "1109"

Since the problem persists across different distributions and desktop environments,

it may not be distribution-specific but could instead relate to PulseAudio, Wireplumber, or how ALSA handles USB audio devices with surround sound configurations.

Happens on both Ubuntu-based and Arch-based distributions such as Kubuntu 24.04, Pop! OS, and Cachy OS .

I have seen no fix or workaround yet for the SteelSeries Arena 9.

Unfortunately, I still can’t find any solution to this. There have been several updates of alsa and pipewire in previous months, but nothing seems to help.

I thought it might be related to the speakers themselves, but I had been using them in Windows for several months before I switched to Linux and there was no audio issue there. I’m at a loss as to what could be causing this weird behaviour…

You’ll need to go down the rabbit hole of figuring out how audio works on Linux:

I’ve had other unrelated issues with 5.1 Audio only as Stereo - #9 by IvanAT and the only way is to get your hands dirty and make some custom scripts which fix the mess.