#!/bin/bash # Benjamyn Love # Soundboard setup # Based on thread https://superuser.com/questions/1675877/how-to-create-a-new-pipewire-virtual-device-that-to-combines-an-real-input-and-o # VARIABLES VIRTUAL_SINK_NAME="soundboard" VIRTUAL_MIC_NAME="mic-soundboard" PHYS_MIC_L="alsa_input.usb-R__DE_Microphones_R__DE_NT-USB_Mini_4B14FBA6-00.mono-fallback:capture_MONO" PHYS_MIC_R="alsa_input.usb-R__DE_Microphones_R__DE_NT-USB_Mini_4B14FBA6-00.mono-fallback:capture_MONO" # Create a combined audio sink and soundboard-specific sink pactl load-module module-null-sink media.class=Audio/Sink sink_name=${VIRTUAL_SINK_NAME} channel_map=stereo # Create a virtual microphone pactl load-module module-null-sink media.class=Audio/Source/Virtual sink_name=${VIRTUAL_MIC_NAME} channel_map=front-left,front-right # Create loopback #pactl load-module module-loopback # Link the loopback # #input.loopback-3441-13:input_FL # |<- mic-soundboard:capture_FL #input.loopback-3441-13:input_FR # |<- mic-soundboard:capture_FR # Link the microphone to the virtual sink pw-link ${PHYS_MIC_L} ${VIRTUAL_SINK_NAME}:playback_FL pw-link ${PHYS_MIC_R} ${VIRTUAL_SINK_NAME}:playback_FR # Link the combined sink to the virtual microphone pw-link ${VIRTUAL_SINK_NAME}:monitor_FL ${VIRTUAL_MIC_NAME}:input_FL pw-link ${VIRTUAL_SINK_NAME}:monitor_FR ${VIRTUAL_MIC_NAME}:input_FR