You are not logged in.

#1 2022-11-30 14:56:28

tom8o
Member
Registered: 2021-01-12
Posts: 7

[SOLVED] Logitech G432 headset surround sound does not work

Installed Arch on a Lenovo ThinkPad T15p yesterday. Everything else appears to work fine, but I can only use my Logitech G432 headset in stereo mode. Its surround sound mode works on Windows (on another laptop), but if I go to KDE system settings and change the headset's profile to "Digital Surround 5.1 (IEC958/AC3) Output", I only hear a very repetitive and painful noise from the headset, regardless of whether sound is actually playing or not.

aplay -l gives:

**** List of PLAYBACK Hardware Devices ****
card 0: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 3: HDMI1 (*) []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 4: HDMI2 (*) []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 5: HDMI3 (*) []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 31: HDA Analog Deep Buffer (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Headset [G432 Gaming Headset], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

aplay -L gives:

null
    Discard all samples (playback) or generate zero samples (capture)
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
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:CARD=sofhdadsp
    sof-hda-dsp, 
    Default Audio Device
sysdefault:CARD=sofhdadsp
    sof-hda-dsp, 
    Default Audio Device
usbstream:CARD=sofhdadsp
    sof-hda-dsp
    USB Stream Output
default:CARD=Headset
    G432 Gaming Headset, USB Audio
    Default Audio Device
sysdefault:CARD=Headset
    G432 Gaming Headset, USB Audio
    Default Audio Device
front:CARD=Headset,DEV=0
    G432 Gaming Headset, USB Audio
    Front output / input
surround21:CARD=Headset,DEV=0
    G432 Gaming Headset, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Headset,DEV=0
    G432 Gaming Headset, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Headset,DEV=0
    G432 Gaming Headset, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Headset,DEV=0
    G432 Gaming Headset, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Headset,DEV=0
    G432 Gaming Headset, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Headset,DEV=0
    G432 Gaming Headset, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Headset,DEV=0
    G432 Gaming Headset, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
usbstream:CARD=Headset
    G432 Gaming Headset
    USB Stream Output

(The above outputs were taken when the headset was in Stereo profile, in KDE system settings.)

How can I enable surround sound with this? Do I need any packages? Any tests I can do?

Last edited by tom8o (2022-12-01 19:01:41)

Offline

#2 2022-12-01 01:01:55

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,723

Re: [SOLVED] Logitech G432 headset surround sound does not work

Do you know whether this is actual real surround or just software emulation? Many of these headsets don't really implement that but emulate it in the driver/software. FWIW assuming you aren't playing anything else, what do you get from

speaker-test -Dsurround51:CARD=Headset,DEV=0 -c6

? Do you get audible noise in each channel? What's your output for

amixer -c1
pactl list cards

Edit: https://www.logitechg.com/en-us/product … 00769.html suggests this is just software emulation built into the driver (hover over the 1 superscript on the "surround" feature point...).

You can fake that just the same: https://gitlab.freedesktop.org/pipewire … l-surround e.g. the 5.1 kemar sample needs ssr installed then you should be able to use that to create your own virtual surround implementation. FWIW a googler also turned up e.g. https://www.reddit.com/r/linuxaudio/com … &context=3 which has some links to some more surround files that might give different/better results.

Last edited by V1del (2022-12-01 11:35:28)

Offline

#3 2022-12-01 14:13:12

tom8o
Member
Registered: 2021-01-12
Posts: 7

Re: [SOLVED] Logitech G432 headset surround sound does not work

Output of speaker-test:

speaker-test 1.2.8

Playback device is surround51:CARD=Headset,DEV=0
Stream parameters are 48000Hz, S16_LE, 6 channels
Using 16 octaves of pink noise
Broken configuration for playback: no configurations available: Invalid argument
Setting of hwparams failed: Invalid argument 

Looked up some stuff, don't know why it doesn't quite work when it used to. (Edit: Mono/stereo channels work when I do not attempt to reproduce surround sound.) I installed pipewire instead of pulseaudio and rebooted, to the same result.

amixer -c1:

Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 87
  Mono: Playback 87 [100%] [0.00dB] [on]
Simple mixer control 'Headphone',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB] [off]
  Front Right: Playback 87 [100%] [0.00dB] [off]
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 77 [89%] [-7.50dB] [on]
  Front Right: Playback 77 [89%] [-7.50dB] [on]
Simple mixer control 'Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 3 [100%] [30.00dB]
  Front Right: 3 [100%] [30.00dB]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',1
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'IEC958',2
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 63
  Front Left: Capture 63 [100%] [30.00dB] [on]
  Front Right: Capture 63 [100%] [30.00dB] [on]
Simple mixer control 'Auto-Mute Mode',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Enabled'
Simple mixer control 'Dmic0',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 70
  Front Left: Capture 62 [89%] [12.00dB] [on]
  Front Right: Capture 62 [89%] [12.00dB] [on]
Simple mixer control 'Dmic1 2nd',0
  Capabilities: cvolume
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 70
  Front Left: Capture 50 [71%] [0.00dB]
  Front Right: Capture 50 [71%] [0.00dB]
Simple mixer control 'PGA1.0 1 Master',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]
Simple mixer control 'PGA2.0 2 Master',0
  Capabilities: cvolume
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 80
  Front Left: Capture 50 [62%] [0.00dB]
  Front Right: Capture 50 [62%] [0.00dB]
Simple mixer control 'PGA30.0 30',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]
Simple mixer control 'PGA31.0 31',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]
Simple mixer control 'PGA7.0 7 Master',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]
Simple mixer control 'PGA8.0 8 Master',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]
Simple mixer control 'PGA9.0 9 Master',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]

pactl list cards:

Card #39
        Name: alsa_card.usb-Logitech_G432_Gaming_Headset_000000000000-00
        Driver: alsa
        Owner Module: n/a
        Properties:
                device.enum.api = "udev"
                device.api = "alsa"
                media.class = "Audio/Device"
                api.alsa.path = "hw:0"
                api.alsa.card = "0"
                api.alsa.card.name = "G432 Gaming Headset"
                api.alsa.card.longname = "Logitech G432 Gaming Headset at usb-0000:00:14.0-1, full speed"
                device.plugged.usec = "13427067"
                device.bus_path = "pci-0000:00:14.0-usb-0:1:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/sound/card0"
                device.bus-id = "usb-Logitech_G432_Gaming_Headset_000000000000-00"
                device.bus = "usb"
                device.subsystem = "sound"
                device.vendor.id = "0x046d"
                device.vendor.name = "Logitech, Inc."
                device.product.id = "0x0a9c"
                device.product.name = "G432 Gaming Headset"
                device.serial = "Logitech_G432_Gaming_Headset_000000000000"
                device.form_factor = "headset"
                device.name = "alsa_card.usb-Logitech_G432_Gaming_Headset_000000000000-00"
                device.description = "G432 Gaming Headset"
                device.nick = "G432 Gaming Headset"
                device.icon_name = "audio-headset-usb"
                api.alsa.use-acp = "true"
                api.acp.auto-profile = "false"
                api.acp.auto-port = "false"
                api.dbus.ReserveDevice1 = "Audio0"
                factory.id = "14"
                client.id = "31"
                object.id = "39"
                object.serial = "39"
                object.path = "alsa:pcm:0"
                alsa.card = "0"
                alsa.card_name = "G432 Gaming Headset"
                alsa.long_card_name = "Logitech G432 Gaming Headset at usb-0000:00:14.0-1, full speed"
                alsa.driver_name = "snd_usb_audio"
                device.string = "0"
        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: 1, sources: 1, priority: 1, available: yes)
                input:mono-fallback: Mono Input (sinks: 0, sources: 1, priority: 1, available: yes)
        Active Profile: output:iec958-ac3-surround-51+input:mono-fallback
        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

Card #40
        Name: alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic
        Driver: alsa
        Owner Module: n/a
        Properties:
                device.enum.api = "udev"
                device.api = "alsa"
                media.class = "Audio/Device"
                api.alsa.path = "hw:1"
                api.alsa.card = "1"
                api.alsa.card.name = "sof-hda-dsp"
                api.alsa.card.longname = "LENOVO-21DA000PUS-ThinkPadT15pGen3"
                device.plugged.usec = "13607898"
                device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
                sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card1"
                device.bus = "pci"
                device.subsystem = "sound"
                device.vendor.id = "0x8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "0x51c8"
                device.product.name = "Alder Lake PCH-P High Definition Audio Controller"
                device.name = "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic"
                device.description = "Alder Lake PCH-P High Definition Audio Controller"
                device.nick = "sof-hda-dsp"
                device.icon_name = "audio-card-pci"
                api.alsa.use-acp = "true"
                api.acp.auto-profile = "false"
                api.acp.auto-port = "false"
                api.dbus.ReserveDevice1 = "Audio1"
                factory.id = "14"
                client.id = "31"
                object.id = "40"
                object.serial = "40"
                object.path = "alsa:pcm:1"
                alsa.card = "1"
                alsa.card_name = "sof-hda-dsp"
                alsa.long_card_name = "LENOVO-21DA000PUS-ThinkPadT15pGen3"
                alsa.driver_name = "snd_soc_skl_hda_dsp"
                device.string = "1"
        Profiles:
                off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
                HiFi: Play HiFi quality Music (sinks: 4, sources: 2, priority: 8000, available: yes)
        Active Profile: HiFi
        Ports:
                [Out] HDMI3: HDMI / DisplayPort 3 Output (type: HDMI, priority: 700, latency offset: 0 usec, availability group: HDMI/DP,pcm=5, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "HDMI/DP,pcm=5"
                                card.profile.port = "0"
                        Part of profile(s): HiFi
                [Out] HDMI2: HDMI / DisplayPort 2 Output (type: HDMI, priority: 600, latency offset: 0 usec, availability group: HDMI/DP,pcm=4, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "HDMI/DP,pcm=4"
                                card.profile.port = "1"
                        Part of profile(s): HiFi
                [Out] HDMI1: HDMI / DisplayPort 1 Output (type: HDMI, priority: 500, latency offset: 0 usec, availability group: HDMI/DP,pcm=3, available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "HDMI/DP,pcm=3"
                                card.profile.port = "2"
                                device.product.name = "LG FULL HD"
                        Part of profile(s): HiFi
                [Out] Speaker: Speaker (type: Speaker, priority: 100, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "speaker"
                                card.profile.port = "3"
                        Part of profile(s): HiFi
                [Out] Headphones: Headphones (type: Headphones, priority: 200, latency offset: 0 usec, availability group: Headphone, not available)
                        Properties:
                                port.type = "headphones"
                                port.availability-group = "Headphone"
                                card.profile.port = "4"
                        Part of profile(s): HiFi
                [In] Mic2: Headphones Stereo Microphone (type: Mic, priority: 200, latency offset: 0 usec, availability group: Mic, not available)
                        Properties:
                                port.type = "mic"
                                port.availability-group = "Mic"
                                card.profile.port = "5"
                        Part of profile(s): HiFi
                [In] Mic1: Digital Microphone (type: Mic, priority: 100, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "mic"
                                card.profile.port = "6"
                        Part of profile(s): HiFi

I will take a look at the links you've posted.

Last edited by tom8o (2022-12-01 14:14:18)

Offline

#4 2022-12-01 14:44:00

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,723

Re: [SOLVED] Logitech G432 headset surround sound does not work

What do you mean "it used to work" ? Did you use that same headset on linux and it worked in a surround configuration? The AC3 profile? these generally need something that encodes your normal PCM stream to AC3 but these are often a hassle to config. From what I'm reading surround here is only a software implementation which makes me not surprised that it wouldn't work.

Offline

#5 2022-12-01 14:51:49

tom8o
Member
Registered: 2021-01-12
Posts: 7

Re: [SOLVED] Logitech G432 headset surround sound does not work

V1del wrote:

What do you mean "it used to work" ? Did you use that same headset on linux and it worked in a surround configuration? The AC3 profile? these generally need something that encodes your normal PCM stream to AC3 but these are often a hassle to config. From what I'm reading surround here is only a software implementation which makes me not surprised that it wouldn't work.

Apologies for the murky response. I meant that I used to be able to run the speaker-test command without errors on six or eight channels, which I cannot do now, on the same headset. The issue back then was that only the Front Left/Front Right channels would emit sound and the others would be silent and called Unused. Cannot reproduce this now. I am trying to configure virtual surround sound now as well. Will edit with my findings.

Offline

#6 2022-12-01 15:05:34

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,723

Re: [SOLVED] Logitech G432 headset surround sound does not work

speaker-test -Dsurround51 will completely bypass pipewire or pulseaudio and should also not be attempted while either is actively using the device/playing back (... prior to running the speaker-test sudo fuser -v /dev/snd/* should not show a pcm device occupied) but still according to the spec sheet the result while it was working is expected to me, since surround is not actually present and just a faked software impl.

Offline

#7 2022-12-01 19:01:15

tom8o
Member
Registered: 2021-01-12
Posts: 7

Re: [SOLVED] Logitech G432 headset surround sound does not work

I am glad to report I have succeeded in producing virtual 5.1 surround sound with this setup.

Here is a step-by-step guide, as I recall:

1. Go to https://gitlab.freedesktop.org/pipewire … kemar.conf and download the file; as specified in the header, it should be placed in a directory such as ~/.config/pipewire/filter-chain.conf.d/ . The other subfolder, pipewire.conf.d should also be usable.

2. Go to https://airtable.com/shruimhjdSakUPg2m/ … ZKWJDnLtTc and download a .wav sample of your choice. I personally downloaded "atmos" (that is to say, the file atmos.wav) under the Popular category. Place this file somewhere convenient (I picked ~/.config/pipewire/ myself), and remember its absolute path.

3. Open the config file you downloaded in step 1 and find-and-replace all instances of hrir_hesuvi/hrir.wav with the ABSOLUTE path of the .wav file you downloaded. Save.

4. Change your sound output device (in system settings, etc.) to "Virtual Surround Sink".

It should work now. Should the volume seem low, you can try to switch to another sound output (in my case it was Analog Stereo Output), and switch back.

Last edited by tom8o (2022-12-01 19:05:48)

Offline

Board footer

Powered by FluxBB