
Eu tenho um piano digital conectado a uma interface de áudio USB Focusrite Scarlett 2i2. Essa interface e uma webcam USB da Logitech estão conectadas ao meu computador. Quero mesclar os sons da Scarlett e do microfone da webcam em um null-sink e usar seu monitor como "microfone" no Skype para aulas remotas de piano. O professor poderá então me ouvir falar e também a música diretamente da Scarlett (e não gravada via aérea).
Até agora eu faço isso:
pactl load-module module-null-sink sink_name=piano_lesson
pactl load-module module-loopback sink=piano_lesson
pactl load-module module-loopback sink=piano_lesson
Então agora eu tenho que fazer loopbacks indo para o coletor nulo. Em seguida, abro a GUI do pavucontrol e na guia de gravação atribuo a Scarlett ao primeiro loopback e o microfone da webcam ao segundo loopback. Isso funciona. No entanto, isso é tedioso e comecei a escrever um script para automatizar o processo.
No entanto, tenho dificuldade em encontrar o comando para atribuir os dispositivos a esses loopbacks. Não tenho certeza se pactl move-sink-input|move-source-output
são os comandos corretos para isso, nem entendi completamente seu propósito, mesmo lendo a documentação e outras perguntas/respostas do Stack. Os comandos fornecem preenchimento automático, mas as sugestões para os parâmetros são confusas ou os parâmetros esperados (por exemplo, o microfone) não aparecem.
P: Como eu conectaria a Scarlett/microfone aos dispositivos de loopback via linha de comando?
Meu gol:
- conecte a fonte nº 4 (alsa_input.usb-Focusrite_Scarlett_2i2_[...].analog-stereo) à entrada do coletor 1
- conecte a fonte nº 5 (alsa_input.usb-046d_09a1_C5BDCE20-02.analog-mono [=webcam]) à entrada do coletor 2
Aqui estão algumas saídas:
$ pactl list sinks short
0 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
1 alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y8GCE759613412-00.analog-stereo module-alsa-card.c s32le 2ch 44100Hz SUSPENDED
2 piano_lesson module-null-sink.c s16le 2ch 44100Hz RUNNING
$ pactl list sink-inputs short
0 0 1 protocol-native.c float32le 2ch 44100Hz
1 2 - module-loopback.c s16le 2ch 44073Hz
2 2 - module-loopback.c s16le 2ch 44032Hz
$ pactl list sources short
0 alsa_output.pci-0000_00_1b.0.analog-stereo.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
1 alsa_input.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
3 alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y8GCE759613412-00.analog-stereo.monitor module-alsa-card.c s32le 2ch 44100Hz SUSPENDED
4 alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8GCE759613412-00.analog-stereo module-alsa-card.c s32le 2ch 44100Hz RUNNING
5 alsa_input.usb-046d_09a1_C5BDCE20-02.analog-mono module-alsa-card.c s16le 1ch 16000Hz RUNNING
6 piano_lesson.monitor module-null-sink.c s16le 2ch 44100Hz IDLE
$ pactl list source-outputs short
7 4 - module-loopback.c s16le 2ch 44100Hz
9 5 - module-loopback.c s16le 2ch 44100Hz
Observação: Também estou aberto a soluções que não sejam do PulseAudio e não importa se é um script ou uma ferramenta baseada em GUI na qual eu poderia carregar tal configuração, por exemplo, a partir de um perfil.
Responder1
Você pode definir a origem dos dispositivos de loopback.
pactl load-module module-loopback source=alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8GCE759613412-00.analog-stereo sink=piano_lesson
pactl load-module module-loopback source=alsa_input.usb-046d_09a1_C5BDCE20-02.analog-mono sink=piano_lesson