soundboard/audio_setup.bash
2025-09-20 20:06:01 +10:00

36 lines
1.3 KiB
Bash

#!/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