I'm having an annoying issue with pipewire. I have a Scarlett 8i6 audio interface. I have it set to Pro Audio so that I can access all the input and output channels, and I have virtual devices defined to allow applications to access groups of channels as discrete devices.
For some reason, all applications keep automatically switching to my secondary (mono) output. I can sometimes get them to switch to my primary stereo output, but it's only ever a one-off and they will switch back when the current media is done playing. any thoughts?
config:
context.modules = [
{ name = libpipewire-module-loopback
args = {
node.description = "Primary - Focusrite Scarlett 8i6"
capture.props = {
node.name = "scarlett_8i6_primary"
media.class = "Audio/Sink"
audio.position = [ FL FR ]
}
playback.props = {
node.name = "playback.scarlett_8i6_primary"
audio.position = [ AUX0 AUX1 ]
target.object = "alsa_output.usb-Focusrite_Scarlett_8i6_USB_F8CEK2H1B8391D-00.pro-output-0"
stream.dont-remix = true
node.passive = true
}
}
}
{ name = libpipewire-module-loopback
args = {
node.description = "Secondary (Mono) - Focusrite Scarlett 8i6"
capture.props = {
node.name = "scarlett_8i6_secondary"
media.class = "Audio/Sink"
audio.position = [ MONO ]
}
playback.props = {
node.name = "playback.scarlett_8i6_secondary"
audio.position = [ AUX2 ]
target.object = "alsa_output.usb-Focusrite_Scarlett_8i6_USB_F8CEK2H1B8391D-00.pro-output-0"
stream.dont-remix = true
node.passive = true
}
}
}
{ name = libpipewire-module-loopback
args = {
node.description = "Microphone - Focusrite Scarlett 8i6"
capture.props = {
node.name = "capture.scarlett_8i6_mic"
audio.position = [ AUX0 ]
stream.dont-remix = true
target.object = "alsa_input.usb-Focusrite_Scarlett_8i6_USB_F8CEK2H1B8391D-00.pro-input-0"
node.passive = true
}
playback.props = {
node.name = "scarlett_8i6_mic"
media.class = "Audio/Source"
audio.position = [ MONO ]
}
}
}
{ name = libpipewire-module-loopback
args = {
node.description = "Instrument - Focusrite Scarlett 8i6"
capture.props = {
node.name = "capture.scarlett_8i6_inst"
audio.position = [ AUX1 ]
stream.dont-remix = true
target.object = "alsa_input.usb-Focusrite_Scarlett_8i6_USB_F8CEK2H1B8391D-00.pro-input-0"
node.passive = true
}
playback.props = {
node.name = "scarlett_8i6_inst"
media.class = "Audio/Source"
audio.position = [ MONO ]
}
}
}
{ name = libpipewire-module-loopback
args = {
node.description = "Mix - Focusrite Scarlett 8i6"
capture.props = {
node.name = "capture.scarlett_8i6_mix"
audio.position = [ AUX2 AUX3 ]
stream.dont-remix = true
target.object = "alsa_input.usb-Focusrite_Scarlett_8i6_USB_F8CEK2H1B8391D-00.pro-input-0"
node.passive = true
}
playback.props = {
node.name = "scarlett_8i6_mix"
media.class = "Audio/Source"
audio.position = [ FL FR ]
}
}
}
]
The main thing I have learned after switching to Linux full-time is that weird, proprietary hardware like this is almost never a good idea, for many reasons. It's very easy to make labels for keys if you really want to, and if you need more functionality, having more buttons instead of layers is always going to be faster to learn and use. Especially if you are trying to use this as a home automation interface, it's probably a better idea to have either a touch screen or a separate screen and keypad.
Sure, this thing looks nice, but in a couple years (at most) it will be e-waste.