Last active
May 25, 2023 13:53
-
-
Save bnordgren/bd520c4e8afb6c946be6365906f956f7 to your computer and use it in GitHub Desktop.
Pipewire configuration for webmeetings and audio mixers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This directory contains some mappings used for: | |
1] Managing webmeeting audio with OBS; and | |
2] Virtual sinks which map to the Mackie ProFX12v3 4-channel audio output | |
(where channels 3-4 can appear on the mixing board as an input) | |
The two targets are the ProFX mixer and the Scarlett 2i2 interface box. | |
To enable the Scarlett as the output device: | |
1] Uncomment the appropriate target.object line in webmeeting.conf | |
2] Rename ProFX.conf to ProFX.conf.disabled | |
To enable the ProFX as the output device: | |
1] Uncomment the appropriate target.object line in webmeeting.conf | |
2] Rename ProFX.conf.disabled to ProFX.conf | |
Then run: | |
systemctl --user restart pipewire | |
To use OBS to manage sound for webmeetings: | |
A] In OBS | |
1] Settings -> Audio -> Desktop Audio == "Default Non-Webmeeting Audio" | |
2] Settings -> Audio -> Desktop Audio 2 == "Webmeeting Audio" | |
3] Settings -> Audio -> Mic/Aux Audio == < Your microphone source > (ProFX or Scarlett) | |
4] Settings -> Audio -> Monitoring Device == Monitor of OBS Audio | |
5] Audio Mixer Panel -> 3 Vertical Dots -> Desktop Audio -> Audio Monitoring == Monitor and Output | |
6] Audio Mixer Panel -> 3 Vertical Dots -> Desktop Audio 2 -> Audio Monitoring == Monitor Off | |
7] Audio Mixer Panel -> 3 Vertical Dots -> Mic/Aux -> Audio Monitoring == Monitor and Output | |
B] In webmeeting software | |
1] Set speaker to "Webmeeting Audio" | |
2] Set microphone to "OBS Audio" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
context.modules = [ | |
{ name = libpipewire-module-loopback | |
args = { | |
node.description = "ProFX Channels 3-4" | |
#target.delay.sec = 1.5 | |
capture.props = { | |
node.name = "ProFX_3_4" | |
media.class = "Audio/Sink" | |
audio.channels = 2 | |
audio.position = [ FL FR ] | |
} | |
playback.props = { | |
node.name = "playback.ProFX_3_4" | |
audio.channels = 2 | |
audio.position = [ RL RR ] | |
target.object = "alsa_output.usb-LOUD_Technologies_Inc._ProFX-00.analog-surround-40" | |
#node.dont-reconnect = true | |
stream.dont-remix = true | |
#node.passive = true | |
} | |
} | |
} | |
{ name = libpipewire-module-loopback | |
args = { | |
node.description = "ProFX Channels 1-2" | |
#target.delay.sec = 1.5 | |
capture.props = { | |
node.name = "ProFX_1_2" | |
media.class = "Audio/Sink" | |
audio.channels = 2 | |
audio.position = [ FL FR ] | |
} | |
playback.props = { | |
node.name = "playback.ProFX_1_2" | |
audio.channels = 2 | |
audio.position = [ FL FR ] | |
target.object = "alsa_output.usb-LOUD_Technologies_Inc._ProFX-00.analog-surround-40" | |
#node.dont-reconnect = true | |
stream.dont-remix = true | |
#node.passive = true | |
} | |
} | |
} | |
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
context.modules = [ | |
{ name = libpipewire-module-loopback | |
args = { | |
node.description = "Webmeeting Audio" | |
capture.props = { | |
node.name = "input.webmeeting_audio" | |
media.class = "Audio/Sink" | |
audio.channels = 2 | |
#stream.dont-remix = true | |
} | |
playback.props = { | |
node.name = "playback.webmeeting_audio" | |
audio.channels = 2 | |
#target.object = "ProFX_3_4" | |
target.object = "alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y8ATAE5079692D-00.Direct__hw_USB__sink" | |
} | |
} | |
} | |
{ name = libpipewire-module-loopback | |
args = { | |
node.description = "Default Non-Webmeeting Audio" | |
capture.props = { | |
node.name = "input.dummy_default" | |
media.class = "Audio/Sink" | |
audio.channels = 2 | |
audio.position = [ FL FR ] | |
} | |
playback.props = { | |
node.name = "playback.dummy_default" | |
audio.channels = 2 | |
#target.object = "ProFX_3_4" | |
target.object = "alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y8ATAE5079692D-00.Direct__hw_USB__sink" | |
stream.dont-remix = true | |
} | |
} | |
} | |
{ name = libpipewire-module-loopback | |
args = { | |
node.description = "OBS Audio" | |
capture.props = { | |
node.name = "input.obs_monitor" | |
media.class = "Audio/Sink" | |
audio.channels = 2 | |
#stream.dont-remix = true | |
} | |
playback.props = { | |
node.name = "playback.obs_monitor" | |
media.class = "Audio/Source" | |
audio.channels = 2 | |
} | |
} | |
} | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment