You are not logged in.
I have a Focusrite Scarlett 18i8, which is recognized by ALSA as being 7.1 surround while only having stereo outputs. This isn't normally an issue, but some games playing through wine will configure themselves for 7.1 surround causing some missing sounds when playing back in stereo. To work around this issue, I have created a stereo sink that only maps the front left and front right channels. This is a configuration I've had in place for well over a year now.
After a very recent update my stereo sink is now playing back as mono.
In /etc/pipewire/pipewire-pulse.conf under the context.exec section I have the following config to create the stereo sink.
{ path = "pactl" args = "load-module module-remap-sink sink_name=Scarlett-18i8-Stereo sink_properties=device.description=Scarlett-18i8-Stereo remix=no master=alsa_output.usb-Focusrite_Scarlett_18i8_USB_00013448-00.analog-surround-71 channels=2 channel_map=front-left,front-right" }
Here is the sink output showing as mono.
pactl list sinks
Sink #38
State: SUSPENDED
Name: Scarlett-18i8-Stereo
Description: Scarlett-18i8-Stereo
Driver: PipeWire
Sample Specification: float32le 1ch 44100Hz
Channel Map: front-left
Owner Module: 536870913
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: Scarlett-18i8-Stereo.monitor
Latency: 0 usec, configured 0 usec
Flags: DECIBEL_VOLUME LATENCY
Properties:
node.name = "Scarlett-18i8-Stereo"
device.description = "Scarlett-18i8-Stereo"
media.class = "Audio/Sink"
device.class = "filter"
audio.channels = "2"
audio.position = "FL"
node.group = "remap-sink-536870913"
pulse.module.id = "536870913"
node.link-group = "loopback-569-12"
node.virtual = "true"
resample.prefill = "true"
media.name = "Scarlett-18i8-Stereo input"
stream.is-live = "true"
node.autoconnect = "true"
node.want-driver = "true"
adapt.follower.spa-node = ""
object.register = "false"
factory.id = "6"
clock.quantum-limit = "8192"
factory.mode = "merge"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
client.id = "36"
object.id = "38"
object.serial = "38"
Formats:
pcm
pacman -Q | grep pipewire
lib32-libpipewire 1:0.3.70-1
lib32-pipewire 1:0.3.70-1
lib32-pipewire-jack 1:0.3.70-1
libpipewire 1:0.3.70-2
pipewire 1:0.3.70-2
pipewire-alsa 1:0.3.70-2
pipewire-audio 1:0.3.70-2
pipewire-jack 1:0.3.70-2
pipewire-media-session 1:0.4.2-2
pipewire-pulse 1:0.3.70-2
Here is the routing in qpwgraph. Normally FL would patch to AUX0 and FR would patch to AUX1, but there no longer a FR channel.
Has the formatting in pipewire-pulse.conf changed that would cause my configuration to be invalid?
Offline
I may have found the solution I was looking for here. https://gitlab.freedesktop.org/pipewire … tual-sinks
I've removed my previous config and added the following to /etc/pipewire/pipewire-pulse.conf.
context.modules = [
{ name = libpipewire-module-loopback
args = {
node.description = "Scarlett 18i8 Stereo Outputs 1 & 2"
capture.props = {
node.name = "18i8_stereo_1_2"
media.class = "Audio/Sink"
audio.position = [ FL FR ]
}
playback.props = {
node.name = "playback.18i8_stereo_1_2"
audio.position = [ FL FR ]
target.object = "alsa_output.usb-Focusrite_Scarlett_18i8_USB_00013448-00.analog-surround-71"
stream.dont-remix = true
}
}
]
pactl list sinks
Sink #36
State: IDLE
Name: 18i8_stereo_1_2
Description: Scarlett 18i8 Stereo Outputs 1 & 2
Driver: PipeWire
Sample Specification: float32le 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: 18i8_stereo_1_2.monitor
Latency: 0 usec, configured 0 usec
Flags: DECIBEL_VOLUME LATENCY
Properties:
node.name = "18i8_stereo_1_2"
media.class = "Audio/Sink"
audio.position = "[ FL FR ]"
device.description = "Scarlett 18i8 Stereo Outputs 1 & 2"
node.group = "loopback-559-11"
node.link-group = "loopback-559-11"
node.virtual = "true"
resample.prefill = "true"
media.name = "Scarlett 18i8 Stereo Outputs 1 & 2 input"
stream.is-live = "true"
node.autoconnect = "true"
node.want-driver = "true"
adapt.follower.spa-node = ""
object.register = "false"
factory.id = "6"
clock.quantum-limit = "8192"
factory.mode = "merge"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
client.id = "34"
object.id = "36"
object.serial = "36"
Formats:
pcm
I still have no idea what caused the previous config to no longer work.
Last edited by QuiZNo (2023-05-06 22:18:39)
Offline