将立体声 USB 音频接口线路输入拆分为两个单声道设备

将立体声 USB 音频接口线路输入拆分为两个单声道设备

我有一个第三代 Scarlett 2i2 USB 音频接口。它有两个输入和两个输出。默认情况下,这两个输入被视为立体声麦克风。设置 -> 声音 -> 输入显示一个设备:“模拟输入 - Scarlett 2i2 USB”。但是,我希望将这两个输入分开,这样我就可以在应用程序中选择其中一个。

例如,在 Firefox 中,当某些东西想要使用麦克风时,我可以选择 2i2,这样两个输入都会被使用。我希望能够将左输入或右输入发送到应用程序,但不能同时发送两者。

我该如何改变 Pulse / Alsa 以便将音频接口分成两个虚拟输入设备,一个用于左输入,一个用于右输入?

答案1

好吧,感谢 mattia 的回答,我发现sinks和之间是有区别的sources。接收器是输出,源是输入。首先,我运行pacmd list-sources并找到了行channel map: front-left,front-right。这些是我要分离的输入。然后我形成了这一行以放入/etc/pulse/defaults.pa

load-module module-remap-source source_name=2i2_Left_Mic source_properties="device.description='2i2 Left In'" master=alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8J9ZC3950FFF9-00.analog-stereo master_channel_map=front-left channel_map=front-left

master值来自pacmd list-sources,最后的通道映射是使其工作的原因。我从输入中取出物理左声道,并将其映射到我的重新放大源的虚拟左声道。另一侧的线路如下所示:

load-module module-remap-source source_name=2i2_Right_Mic source_properties="device.description='2i2 Right In'" master=alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8J9ZC3950FFF9-00.analog-stereo master_channel_map=front-right channel_map=front-right

您还可以使用 将此源附加到您正在运行的声音服务器而无需进行更改/etc/pulse/defaults.papactl load-module在这种情况下,您需要使用文字反斜杠对描述中的空格进行转义,例如'"foo\ bar"'(看起来不正确但有效,并且避免了神秘的“失败:模块初始化失败”错误):

pactl load-module module-remap-source \
    master=alsa_input.usb-Focusrite_Scarlett_Solo_USB_Y78PVD021E19F4-00.analog-stereo \
    source_name=Scarlett_Left_Mic \
    source_properties=device.description='"Scarlett\ Solo\ Left\ Mic"' \
    channels=1 \
    master_channel_map=front-left \
    channel_map=mono \
    ;

答案2

是的,你可以做到。得益于其延展性,pulseaudio你可以管理应用程序声卡的输入和输出、源和接收器。

我不知道任何已经完成的例子/练习,所以你必须处理它(至少开始) 自行处理。

正如@CL上面所述,是一个很好的起点。这里另一个有用的地方。

最后我推荐一些GUI:pavucontrolpaprefs,可以帮助您完成这次旅行。

相关内容