You are not logged in.
Pages: 1
Hi all
I'm having a sound issue where my system enables me to select Digital Surround 5.1 over HDMI in Plasma's sound settings, but it doesn't seem to be recognised by any games. Only stereo works. I can test the channels in the system settings just fine and all of the channels are producing sound, but it doesn't seem to want to expose itself to games in Steam. I've tried using both pipewire and pulseaudio as my sound driver and the same problem occurs regardless. I'm using an nvidia card with the newest proprietary drivers, and currently running pipewire as my sound engine and my searches so far don't seem to yield anybody having the same problem. I'm very new to this so please be gentle! Please let me know of any additional information needed that would help get to the bottom of this, and most importantly, how to acquire said information.
Thanks in advance!
Online
I'm not super clear what your issue is. Are you not able to output sound at all from Steam games when your default audio output is set to Digital Surround 5.1 via Plasma's setting GUI? If you set the default audio output in Plasma and then select "Default Output" or whatever relevant option appears in your game settings, does that work?
If you use an application like pavucontrol, can you see what output device the game's audio stream is using?
Offline
Sorry for the confusion, the issue is that none of my games seem to be able to output at all in 5.1, only in stereo despite having my audio settings set to 5.1 in the system settings. Most seem to be unable to even select 5.1 as a speaker setup, and the only one that can (Black Mesa) will not play any sound through any channels other than front left and front right. Also I'm not using pavucontrol, isn't that pulse only?
Online
No, pavucontrol works with pipewire. Note that not all games support surround sound to begin with. But if Black Mesa has it as an output option, and you're not actually getting any output, I would start by at least confirming that the audio stream is being routed to the correct output device, hence my recommendation to try pavucontrol.
You can also try and use EasyEffects to create a sink for your 5.1 device, and then select EasyEffects Sink as the output device in your game to see if the audio stream can be picked up that way.
Offline
...if Black Mesa has it as an output option, and you're not actually getting any output, I would start by at least confirming that the audio stream is being routed to the correct output device, hence my recommendation to try pavucontrol.
I see what you're saying, but the issue isn't that there is no sound when I select 5.1 in Black Mesa for example, the issue is that it still only plays back in 2.1. Half-Life 2 is another example, I know that game does support surround sound but the game options only have 2 speakers as an available option. Again, despite 5.1 being selected in system settings.
Online
Ok tell me more about your physical setup. You have HDMI out from your PC to a display? Then is that display connected via S/PDIF or something else to your speaker setup?
Offline
No, I have HDMI output to an A/V receiver, and then from the receiver to a display.
Online
Can you test with a media file that is 5.1 surround? I am wondering if this is an issue with audio from the application layer not being routed correctly or if there's a physical issue with your setup. For example, if your speakers are connected to your A/V receiver via S/PDIF that's only capable of carrying two audio channels.
Offline
I think it's more likely the former, I've been doing some reading about people getting their surround working by editing /etc/pulse/daemon.conf to include the correct number of channels, only I'm not using pulse. I do know about the pipewire-pulse daemon that acts as a translation layer, so I'm wondering if there is something in its configuration I need to edit, the equivalent settings to the pulse daemon conf. I'm not using S/PDIF anywhere in the chain, all audio is being carried over HDMI with the receiver as the DAC and amp. I can get the individual channels to play audio in the system settings, opening up the test panel and clicking on the individual speakers causes their relevant channels to play sound.
Online
Please try playing some media that is encoded in 5.1. I know that you're able to individually test your speakers, but to make sure that your audio stack is able to correctly route 5.1 I'd like to know if a stream can be correctly routed through all six channels to the correct speakers in your 5.1 setup.
Offline
Digital Surround is technically SPDIF and that can only really work if you actually encode your signal to ac3 beforehand so it can get carried over the dual channel. To try that you'll want to install dcaenc from the AUR and then select the dcaenc sinks that should become available once you reboot/restart pipewire.
Offline
Okay so I downloaded and tested an LPCM 5.1 test file, and that plays just fine, with all six channels playing as they should. It seems this is a problem unique to games.
Online
fwiw to avoid some pitfalls, your games are getting routed via the pulse API right? You have lib32-pipewire and lib32-libpulse installed?
Offline
I didn't as a matter of fact, so I've just installed both of those, restarted, and still the same problem. Is there some configuration that needs to happen?
Last edited by KorvusKrash (2024-11-29 15:25:53)
Online
When in the faulty situation, what output do you get from
sudo fuser -v /dev/snd/*
aplay -lL #alsa-utils
pactl list sinks
pactl list sink-inputs
post these wrapped in [code][/code] tags.
Last edited by V1del (2024-11-29 16:00:17)
Offline
I think I found the problem, pactl info yields this:
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 171
Tile Size: 65472
User Name: nick
Host Name: stormforce
Server Name: PulseAudio (on PipeWire 1.2.7)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_07_00.1.hdmi-surround
Default Source: alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat
Cookie: d206:f726
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Question is, how do I change that?
Online
That "should" not be the problem, generally speaking the channel map exposed to applications "should" be the one that's tied to the sink that gets exposed, the global default "should" be irrelevant, please post the other outputs,. (FWIW this works as it should here, with at least SF6 being an example I can directly point to without having to test much else)
But since we don't live in shouldland, create the file /etc/pipewire/pipewire-pulse.conf.d/changeChannelMap.conf
pulse.properties = {
server.address = [
"unix:native"
]
pulse.default.position = [ FL FR FC LFE RL RR ] #Adjust map as appropriate if this is wrong
}
restart pipewire
systemctl --user restart pipewire pipewire-pulse
Also maybe elaborate on games, which ones exactly? I've only seen Black Mesa in your posts, but I might be blind. Is that native or via proton, does it make a difference?
Last edited by V1del (2024-11-29 16:50:10)
Offline
You were correct, that was not the issue. Outputs are as follows:
sudo fuser -v /dev/snd/*
USER PID ACCESS COMMAND
/dev/snd/controlC0: nick 5435 F.... wireplumber
/dev/snd/controlC1: nick 5434 F.... pipewire
nick 5435 F.... wireplumber
/dev/snd/pcmC1D3p: nick 5434 F...m pipewire
/dev/snd/seq: nick 5434 F.... pipewire
aplay -lL #alsa-utils
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=Ultimate
Razer Nari Ultimate, USB Audio
Default Audio Device
front:CARD=Ultimate,DEV=0
Razer Nari Ultimate, USB Audio
Front output / input
surround21:CARD=Ultimate,DEV=0
Razer Nari Ultimate, USB Audio
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Ultimate,DEV=0
Razer Nari Ultimate, USB Audio
4.0 Surround output to Front and Rear speakers
surround41:CARD=Ultimate,DEV=0
Razer Nari Ultimate, USB Audio
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Ultimate,DEV=0
Razer Nari Ultimate, USB Audio
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Ultimate,DEV=0
Razer Nari Ultimate, USB Audio
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Ultimate,DEV=0
Razer Nari Ultimate, USB Audio
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Ultimate,DEV=0
Razer Nari Ultimate, USB Audio
IEC958 (S/PDIF) Digital Audio Output
iec958:CARD=Ultimate,DEV=1
Razer Nari Ultimate, USB Audio #1
IEC958 (S/PDIF) Digital Audio Output
usbstream:CARD=Ultimate
Razer Nari Ultimate
USB Stream Output
hdmi:CARD=NVidia,DEV=0
HDA NVidia, VX3276-FHD
HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
HDA NVidia, PG48UQ
HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
HDA NVidia, HDMI 2
HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
HDA NVidia, HDMI 3
HDMI Audio Output
usbstream:CARD=NVidia
HDA NVidia
USB Stream Output
**** List of PLAYBACK Hardware Devices ****
card 0: Ultimate [Razer Nari Ultimate], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Ultimate [Razer Nari Ultimate], device 1: USB Audio [USB Audio #1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [VX3276-FHD]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [PG48UQ]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
pactl list sinks
Sink #66
State: RUNNING
Name: alsa_output.pci-0000_07_00.1.hdmi-surround
Description: GA102 High Definition Audio Controller Digital Surround 5.1 (HDMI)
Driver: PipeWire
Sample Specification: s32le 6ch 48000Hz
Channel Map: front-left,front-right,rear-left,rear-right,front-center,lfe
Owner Module: 4294967295
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB, rear-left: 65536 / 100% / 0.00 dB, rear-right: 65536 / 100% / 0.00 dB, front-center: 65536 / 100% / 0.00 dB, lfe: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.pci-0000_07_00.1.hdmi-surround.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS
Properties:
alsa.card = "1"
alsa.card_name = "HDA NVidia"
alsa.class = "generic"
alsa.components = "HDA:10de009a,104387af,00100100"
alsa.device = "3"
alsa.driver_name = "snd_hda_intel"
alsa.id = "HDMI 0"
alsa.long_card_name = "HDA NVidia at 0xfc080000 irq 128"
alsa.mixer_name = "Nvidia GPU 9a HDMI/DP"
alsa.name = "VX3276-FHD"
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 = "HDA NVidia at 0xfc080000 irq 128"
api.alsa.card.name = "HDA NVidia"
api.alsa.path = "hdmi:1"
api.alsa.pcm.card = "1"
api.alsa.pcm.stream = "playback"
audio.channels = "6"
audio.position = "FL,FR,RL,RR,FC,LFE"
card.profile.device = "5"
device.api = "alsa"
device.class = "sound"
device.id = "54"
device.profile.description = "Digital Surround 5.1 (HDMI)"
device.profile.name = "hdmi-surround"
device.routes = "1"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "GA102 High Definition Audio Controller"
node.name = "alsa_output.pci-0000_07_00.1.hdmi-surround"
node.nick = "VX3276-FHD"
node.pause-on-idle = "false"
object.path = "alsa:acp:NVidia:5:playback"
port.group = "playback"
priority.driver = "696"
priority.session = "696"
factory.id = "19"
clock.quantum-limit = "8192"
client.id = "53"
node.driver = "true"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "59"
object.serial = "66"
node.max-latency = "16384/48000"
api.alsa.period-size = "1024"
api.alsa.period-num = "32"
api.alsa.headroom = "0"
api.acp.auto-port = "false"
api.alsa.card = "1"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio1"
api.dbus.ReserveDevice1.Priority = "-20"
device.bus = "pci"
device.bus_path = "pci-0000:07:00.1"
device.enum.api = "udev"
device.icon_name = "audio-card-analog-pci"
device.name = "alsa_card.pci-0000_07_00.1"
device.nick = "HDA NVidia"
device.plugged.usec = "3628299"
device.product.id = "0x1aef"
device.product.name = "GA102 High Definition Audio Controller"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:03.1/0000:07:00.1/sound/card1"
device.vendor.id = "0x10de"
device.vendor.name = "NVIDIA Corporation"
device.string = "1"
Ports:
hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, availability group: Legacy 1, available)
Active Port: hdmi-output-0
Formats:
pcm
Sink #67
State: SUSPENDED
Name: alsa_output.usb-Razer_Razer_Nari_Ultimate-00.analog-chat
Description: Nari Ultimate Chat
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: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.usb-Razer_Razer_Nari_Ultimate-00.analog-chat.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "0"
alsa.card_name = "Razer Nari Ultimate"
alsa.class = "generic"
alsa.components = "USB1532:051a"
alsa.device = "0"
alsa.driver_name = "snd_usb_audio"
alsa.id = "USB Audio"
alsa.long_card_name = "Razer Razer Nari Ultimate at usb-0000:09:00.3-2.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 = "Razer Razer Nari Ultimate at usb-0000:09:00.3-2.1, full speed"
api.alsa.card.name = "Razer Nari Ultimate"
api.alsa.path = "hw:0,0,0"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "playback"
audio.channels = "1"
audio.position = "MONO"
card.profile.device = "0"
device.api = "alsa"
device.class = "sound"
device.id = "55"
device.profile.description = "Chat"
device.profile.name = "analog-chat"
device.routes = "1"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "Nari Ultimate"
node.name = "alsa_output.usb-Razer_Razer_Nari_Ultimate-00.analog-chat"
node.nick = "Razer Nari Ultimate"
node.pause-on-idle = "false"
object.path = "alsa:acp:Ultimate:0:playback"
port.group = "playback"
priority.driver = "1009"
priority.session = "1009"
factory.id = "19"
clock.quantum-limit = "8192"
client.id = "53"
node.driver = "true"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "62"
object.serial = "67"
api.acp.auto-port = "false"
api.alsa.card = "0"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio0"
api.dbus.ReserveDevice1.Priority = "-20"
device.bus = "usb"
device.bus-id = "usb-Razer_Razer_Nari_Ultimate-00"
device.bus_path = "pci-0000:09:00.3-usb-0:2.1:1.0"
device.enum.api = "udev"
device.icon_name = "audio-card-analog-usb"
device.name = "alsa_card.usb-Razer_Razer_Nari_Ultimate-00"
device.nick = "Razer Nari Ultimate"
device.plugged.usec = "3890769"
device.product.id = "0x051a"
device.product.name = "Nari Ultimate"
device.profile-set = "razer-nari-usb-audio.conf"
device.serial = "Razer_Razer_Nari_Ultimate"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:09:00.3/usb5/5-2/5-2.1/5-2.1:1.0/sound/card0"
device.vendor.id = "0x1532"
device.vendor.name = "Razer USA, Ltd"
device.string = "0"
Ports:
razer-nari-output-chat: Chat Output (type: Headset, priority: 5000, availability unknown)
Active Port: razer-nari-output-chat
Formats:
pcm
Sink #68
State: SUSPENDED
Name: alsa_output.usb-Razer_Razer_Nari_Ultimate-00.analog-game
Description: Nari Ultimate Game
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 Source: alsa_output.usb-Razer_Razer_Nari_Ultimate-00.analog-game.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE HW_MUTE_CTRL DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "0"
alsa.card_name = "Razer Nari Ultimate"
alsa.class = "generic"
alsa.components = "USB1532:051a"
alsa.device = "1"
alsa.driver_name = "snd_usb_audio"
alsa.id = "USB Audio"
alsa.long_card_name = "Razer Razer Nari Ultimate at usb-0000:09:00.3-2.1, full speed"
alsa.mixer_name = "USB Mixer"
alsa.name = "USB Audio #1"
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 = "Razer Razer Nari Ultimate at usb-0000:09:00.3-2.1, full speed"
api.alsa.card.name = "Razer Nari Ultimate"
api.alsa.path = "hw:0,1,0"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "1"
device.api = "alsa"
device.class = "sound"
device.id = "55"
device.profile.description = "Game"
device.profile.name = "analog-game"
device.routes = "1"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "Nari Ultimate"
node.name = "alsa_output.usb-Razer_Razer_Nari_Ultimate-00.analog-game"
node.nick = "USB Audio #1"
node.pause-on-idle = "false"
object.path = "alsa:acp:Ultimate:1:playback"
port.group = "playback"
priority.driver = "737"
priority.session = "737"
factory.id = "19"
clock.quantum-limit = "8192"
client.id = "53"
node.driver = "true"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "61"
object.serial = "68"
api.acp.auto-port = "false"
api.alsa.card = "0"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio0"
api.dbus.ReserveDevice1.Priority = "-20"
device.bus = "usb"
device.bus-id = "usb-Razer_Razer_Nari_Ultimate-00"
device.bus_path = "pci-0000:09:00.3-usb-0:2.1:1.0"
device.enum.api = "udev"
device.icon_name = "audio-card-analog-usb"
device.name = "alsa_card.usb-Razer_Razer_Nari_Ultimate-00"
device.nick = "Razer Nari Ultimate"
device.plugged.usec = "3890769"
device.product.id = "0x051a"
device.product.name = "Nari Ultimate"
device.profile-set = "razer-nari-usb-audio.conf"
device.serial = "Razer_Razer_Nari_Ultimate"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:09:00.3/usb5/5-2/5-2.1/5-2.1:1.0/sound/card0"
device.vendor.id = "0x1532"
device.vendor.name = "Razer USA, Ltd"
device.string = "0"
Ports:
razer-nari-output-game: Game Output (type: Headset, priority: 9900, availability unknown)
Active Port: razer-nari-output-game
Formats:
pcm
pactl list sink-inputs
Sink Input #117
Driver: PipeWire
Owner Module: n/a
Client: 116
Sink: 66
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Format: pcm, format.sample_format = "\"s16le\"" format.rate = "44100" format.channels = "2" format.channel_map = "\"front-left,front-right\""
Corked: no
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Buffer Latency: 0 usec
Sink Latency: 0 usec
Resample method: PipeWire
Properties:
client.api = "pipewire-pulse"
pulse.server.type = "unix"
application.name = "HALF-LIFE 2"
media.role = "game"
application.process.id = "5820"
application.process.user = "nick"
application.process.host = "stormforce"
application.process.binary = "hl2_linux"
application.language = "en_US.UTF-8"
window.x11.display = ":1"
application.process.machine_id = "9ee9333d3cd3448c9ce301aa4289b406"
application.process.session_id = "1"
media.name = "Audio Stream"
node.rate = "1/44100"
node.latency = "512/44100"
stream.is-live = "true"
node.name = "HALF-LIFE 2"
node.want-driver = "true"
node.autoconnect = "true"
media.class = "Stream/Output/Audio"
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 = "82"
object.id = "88"
object.serial = "117"
node.driver-id = "59"
pulse.attr.maxlength = "4194304"
pulse.attr.tlength = "6144"
pulse.attr.prebuf = "4100"
pulse.attr.minreq = "2048"
module-stream-restore.id = "sink-input-by-media-role:game"
So far I've tried Black Mesa and Half-Life 2, both of which are running natively. I just tried Space Marine 2 via Proton, and that does indeed have surround. So it seems this is a native app problem.
Last edited by KorvusKrash (2024-11-29 17:13:21)
Online
Pages: 1