
У меня есть цифровое пианино, подключенное к 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