Wie verbinde ich Audiogeräte mit PulseAudio mit Loopback-Geräten?

Wie verbinde ich Audiogeräte mit PulseAudio mit Loopback-Geräten?

Ich habe ein Digitalpiano an ein Focusrite Scarlett 2i2 USB-Audio-Interface angeschlossen. Dieses Interface und eine Logitech USB-Webcam sind beide an meinen Computer angeschlossen. Ich möchte die Töne vom Scarlett und dem Webcam-Mikrofon in einem Null-Sink zusammenführen und dessen Monitor als „Mikrofon“ in Skype für Klavierunterricht aus der Ferne verwenden. Der Lehrer kann mich dann sprechen hören und auch die Musik direkt vom Scarlett (und nicht über Funk aufgezeichnet).

Bisher mache ich das so:

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

Jetzt muss ich also zwei Loopbacks in den Null-Sink-Kanal einbinden. Dann öffne ich die Pavucontrol-GUI und weise auf der Registerkarte „Aufzeichnen“ das Scarlett dem ersten Loopback und das Webcam-Mikrofon dem zweiten Loopback zu. Das funktioniert. Allerdings ist das mühsam und ich habe begonnen, ein Skript zu schreiben, um den Vorgang zu automatisieren.

Ich habe jedoch Schwierigkeiten, den Befehl zum Zuweisen der Geräte zu diesen Loopbacks zu finden. Ich bin mir nicht sicher, ob pactl move-sink-input|move-source-outputdies die richtigen Befehle dafür sind, und ich habe ihren Zweck auch nach dem Lesen der Dokumentation und anderer Fragen/Antworten zu Stack nicht vollständig verstanden. Die Befehle bieten eine automatische Vervollständigung, aber die Vorschläge für die Parameter sind verwirrend oder erwartete Parameter (z. B. das Mikrofon) werden nicht angezeigt.

F: Wie verbinde ich Scarlett/Mikrofon über die Befehlszeile mit den Loopback-Geräten?

Mein Ziel:

  • Quelle Nr. 4 (alsa_input.usb-Focusrite_Scarlett_2i2_[...].analog-stereo) mit Senken-Eingang 1 verbinden
  • Quelle Nr. 5 (alsa_input.usb-046d_09a1_C5BDCE20-02.analog-mono [=Webcam]) mit Senken-Eingang 2 verbinden

Hier sind einige Ausgaben:

$ 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

Notiz: Ich bin auch für Nicht-PulseAudio-Lösungen offen und dabei ist es egal, ob es sich um ein Skript oder ein GUI-basiertes Tool handelt, in das ich eine solche Konfiguration zB aus einem Profil laden könnte.

Antwort1

Sie können die Quelle für Loopback-Geräte festlegen.

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

verwandte Informationen