Advertisement
masa-

PulseAudio custom sinks/monitors

Mar 7th, 2022
1,220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.07 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. if [ $# -ne 1 ]; then
  4.     echo "Usage: $0 <stream name>"
  5.     exit 1
  6. fi
  7.  
  8. get_sink_id () {
  9.     NAME=${1}
  10.     ID=`pacmd list-sinks\
  11.         | grep -E "^\s*name:|^\s*module:"\
  12.         | grep -A 1 -E "^\s*name: <${NAME}>"\
  13.         | grep -oP "module: \K[0-9]+"`
  14.  
  15.     echo $ID
  16. }
  17.  
  18. get_default_sink_name () {
  19.     NAME=`pacmd list-sinks\
  20.             | grep -A 1 -E "^\s+\* index:"\
  21.             | tail -n 1\
  22.             | grep "name:"\
  23.             | sed "s/^\s*name: <\([^>]\+\)>.*/\1/"`
  24.  
  25.     echo $NAME
  26. }
  27.  
  28. # https://askubuntu.com/questions/355082/pulseaudio-loopback-unload-audio-output-devices
  29.  
  30. # pacmd list-sinks | grep -E "^\s*name:"
  31. #DEFAULT_SINK_NAME="alsa_output.pci-0000_07_00.4.analog-stereo"
  32. DEFAULT_SINK_NAME=$(get_default_sink_name)
  33. CUSTOM_SINK_NAME="${1}"
  34. #echo $DEFAULT_SINK_NAME
  35. #echo $CUSTOM_SINK_NAME
  36.  
  37. if [ -z "${DEFAULT_SINK_NAME}" ]; then
  38.     echo "Failed to get the default sink name"
  39.     exit 1
  40. fi
  41.  
  42. pactl load-module module-null-sink sink_name=${CUSTOM_SINK_NAME} sink_properties=device.description=${CUSTOM_SINK_NAME}
  43. pactl load-module module-loopback source=${CUSTOM_SINK_NAME}.monitor sink=${DEFAULT_SINK_NAME}
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement