如何使用 PulseAudio 將音訊設備連接到環回裝置?

如何使用 PulseAudio 將音訊設備連接到環回裝置?

我有一台連接到 Focusrite Scarlett 2i2 USB 音訊介面的數位鋼琴。該介面和 Logitech USB 網路攝影機都連接到我的電腦。我想將 Scarlett 和網路攝影機麥克風的聲音合併到一個 null-sink 中,並使用其顯示器作為 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

所以現在我必須環回進入空接收器。然後我打開 pavucontrol GUI,並在錄音選項卡上將 Scarlett 分配給第一個環回,將網路攝影機麥克風分配給第二個環回。這有效。然而,這很乏味,我已經開始編寫一個腳本來自動化這個過程。

但是,我很難找到將設備分配給這些環回的命令。我不確定pactl move-sink-input|move-source-output這是否是正確的命令,即使透過閱讀文件和其他堆疊問題/答案,我也沒有完全理解它們的目的。命令提供自動完成功能,但參數建議令人困惑或預期參數(例如麥克風)未顯示。

Q:如何透過命令列將 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 解決方案持開放態度,無論它是腳本還是基於 GUI 的工具,我都可以在其中載入此類配置(例如從設定檔)。

答案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

相關內容