36 lines
1.3 KiB
Bash
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
|