context.modules = [
{ name = libpipewire-module-loopback
args = {
node.name = "mark_null_sink"
node.description = "Mark Null"
capture.props = {
node.description = "Mark Null"
media.class = "Audio/Sink"
audio.position = [ FL FR ]
}
playback.props = {
node.description = "Mark Null"
audio.position = [ RL RR ]
node.dont-reconnect = true
stream.dont-remix = true
node.passive = true
}
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_out_2"
node.description = "Out 2"
combine.latency-compensate = false
combine.props = {
media.name = "Out 2"
audio.position = [ FL FR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{
matches = [
# any of the items in matches needs to match, if one does,
# actions are emitted.
{
# all keys must match the value. ! negates. ~ starts regex.
node.description = "~Starship.*"
media.class = "Audio/Sink"
}
{
node.description = "~USB Condenser Microphone.*"
media.class = "Audio/Sink"
}
{
node.description = "~Built-in Audio.*"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR ]
}
}
}
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_out_5"
node.description = "Out 5"
combine.latency-compensate = false
combine.props = {
media.name = "Out 5"
audio.position = [ FL FR FC LFE SL SR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{
matches = [
# any of the items in matches needs to match, if one does,
# actions are emitted.
{
# all keys must match the value. ! negates. ~ starts regex.
# node.description = "~TU116.*"
node.description = "~.*(HDMI|DP).*Surround 5.1.*"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR FC LFE SL SR ]
}
}
}
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_game_combined"
node.description = "Game Combined"
combine.latency-compensate = false
combine.props = {
media.name = "Game Combined"
audio.position = [ FL FR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_game_2"
node.description = "Game 2"
combine.latency-compensate = false
combine.props = {
media.name = "Game 2"
audio.position = [ FL FR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{
matches = [
{
node.name = "mark_combine_game_combined"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_2"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_5"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR FC LFE SL SR ]
}
}
}
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_game_5"
node.description = "Game 5"
combine.latency-compensate = false
combine.props = {
media.name = "Game 5"
audio.position = [ FL FR FC LFE SL SR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{
matches = [
{
node.name = "mark_combine_game_combined"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_2"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_5"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR FC LFE SL SR ]
}
}
}
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_comms_combined"
node.description = "Comms Combined"
combine.latency-compensate = false
combine.props = {
media.name = "Comms Combined"
audio.position = [ FL FR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_comms_2"
node.description = "Comms 2"
combine.latency-compensate = false
combine.props = {
media.name = "Comms 2"
audio.position = [ FL FR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{
matches = [
{
node.name = "mark_combine_comms_combined"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_2"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_5"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR FC LFE SL SR ]
}
}
}
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_comms_5"
node.description = "Comms 5"
combine.latency-compensate = false
combine.props = {
media.name = "Comms 5"
audio.position = [ FL FR FC LFE SL SR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{
matches = [
{
node.name = "mark_combine_comms_combined"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_2"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_5"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR FC LFE SL SR ]
}
}
}
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_misc_combined"
node.description = "Misc Combined"
combine.latency-compensate = false
combine.props = {
media.name = "Misc Combined"
audio.position = [ FL FR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_misc_2"
node.description = "Misc 2"
combine.latency-compensate = false
combine.props = {
media.name = "Misc 2"
audio.position = [ FL FR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{
matches = [
{
node.name = "mark_combine_misc_combined"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_2"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_5"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR FC LFE SL SR ]
}
}
}
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_misc_5"
node.description = "Misc 5"
combine.latency-compensate = false
combine.props = {
media.name = "Misc 5"
audio.position = [ FL FR FC LFE SL SR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{
matches = [
{
node.name = "mark_combine_misc_combined"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_2"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_5"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR FC LFE SL SR ]
}
}
}
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_music_combined"
node.description = "Music Combined"
combine.latency-compensate = false
combine.props = {
media.name = "Music Combined"
audio.position = [ FL FR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_music_2"
node.description = "Music 2"
combine.latency-compensate = false
combine.props = {
media.name = "Music 2"
audio.position = [ FL FR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{
matches = [
{
node.name = "mark_combine_music_combined"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_2"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_5"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR ]
audio.position = [ FL FR FC LFE SL SR ]
}
}
}
]
}
}
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "mark_combine_music_5"
node.description = "Music 5"
combine.latency-compensate = false
combine.props = {
media.name = "Music 5"
audio.position = [ FL FR FC LFE SL SR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{
matches = [
{
node.name = "mark_combine_music_combined"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_2"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR ]
}
}
}
{
matches = [
{
node.name = "mark_combine_out_5"
media.class = "Audio/Sink"
}
]
actions = {
create-stream = {
combine.audio.position = [ FL FR FC LFE SL SR ]
audio.position = [ FL FR FC LFE SL SR ]
}
}
}
]
}
}
]