Как подключить аудиоустройства к устройствам обратной связи с помощью PulseAudio?

Как подключить аудиоустройства к устройствам обратной связи с помощью PulseAudio?

У меня есть цифровое пианино, подключенное к USB-аудиоинтерфейсу Focusrite Scarlett 2i2. Этот интерфейс и USB-веб-камера Logitech подключены к моему компьютеру. Я хочу объединить звуки со Scarlett и микрофона веб-камеры в нулевой приемник и использовать его монитор в качестве «микрофона» в Skype для удаленных уроков игры на фортепиано. Тогда учитель сможет слышать, как я говорю, а также музыку напрямую со Scarlett (а не записанную через воздух).

Пока я делаю так:

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

Итак, теперь мне нужно сделать loopbacks, идущие в null-sink. Затем я открываю pavucontrol GUI и на вкладке записи назначаю Scarlett на первый loopback, а микрофон веб-камеры на второй loopback. Это работает. Однако это утомительно, и я начал писать скрипт для автоматизации процесса.

Однако мне сложно найти команду для назначения устройств этим петлям. Я не уверен, pactl move-sink-input|move-source-outputправильные ли это команды для этого, и я не полностью понял их назначение, даже прочитав документацию и другие вопросы/ответы по Stack. Команды предоставляют автодополнение, но предложения для параметров сбивают с толку или ожидаемые параметры (например, микрофон) не отображаются.

В: Как подключить Scarlett/микрофон к устройствам обратной связи через командную строку?

Моя цель:

  • подключите источник №4 (alsa_input.usb-Focusrite_Scarlett_2i2_[...].analog-stereo) к входу приемника 1
  • подключите источник №5 (alsa_input.usb-046d_09a1_C5BDCE20-02.analog-mono [=веб-камера]) к входу приемника 2

Вот некоторые результаты:

$ 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

Примечание: Я также открыт для решений, не связанных с PulseAudio, и не имеет значения, будет ли это скрипт или инструмент на основе графического интерфейса, в который я мог бы загрузить такую ​​конфигурацию, например, из профиля.

решение1

Вы можете задать источник для устройств обратной связи.

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

Связанный контент