我的电脑有 4 个声音输出插孔,用于 7.1 环绕输出。但是,我只能播放立体声。我想将扬声器连接到一个插孔,将耳机连接到另一个插孔,同时将相同的立体声输出输出到两个插孔。这样,我只需打开/打开我想要使用的任何一个。我不需要更改连接或通过软件选择正确的输出。
此外,我还有一个低音炮来补充扬声器。我可以将它连接到另一个插孔的一个声道(例如右声道),但它需要将右声道和左声道混合到这个声道中,因为低音炮只有一个单声道输入。
我在 Ubuntu 20.10 上使用 Pulseaudio 13.99。
如何将立体声复制到多个输出插孔,并将两侧的声音混合成一个用于低音炮?
答案1
解决方案
通过pavucontrol
(PulseAudio 音量控制),我将声卡设置为 4.1 输出。这样,front
和rear
插孔就可以完全启用,并且center-subwoofer
插孔有一个通道。完全符合我的需要。如果我想连接 3 个以上的设备,我也可以使用 7.1 输出来启用所有 4 个插孔。
我添加了一个自定义的 pulsaudio 配置文件~/.config/pulse/default.pa
:
# load the system defaults
.include /etc/pulse/default.pa
# create a stereo sink, duplicating to front, and rear jack,
# as well as mixing into the right channel of
# center-subwoofer jack (i.e. the subwoofer channel)
load-module module-remap-sink sink_name=duplicate sink_properties="device.description='duplicate to front, rear, and subwoofer'" master=alsa_output.pci-0000_00_1b.0.analog-surround-41 channels=6 master_channel_map=front-left,front-right,rear-left,rear-right,lfe,lfe channel_map=front-left,front-right,front-left,front-right,front-left,front-right remix=no
set-default-sink duplicate
参数master=
指定了我通过 找到的 4.1 输出的名称pacmd list-sinks
,它还显示了 的所有可用通道的名称master_channel_map=
。lfe
代表“低频发射器”,即低音炮。
3 sink(s) available.
index: 0
name: <alsa_output.pci-0000_00_1b.0.analog-surround-41>
driver: <module-alsa-card.c>
…
channel map: front-left,front-right,rear-left,rear-right,lfe
Surround 4.1
…
强制重启 PulseAudio 后pulseaudio -k
,我可以选择新创建的虚拟输出,并且声音可以根据需要在三个插孔上播放。
参数详细信息
设置的虚拟接收器名称sink_name=
可以是任何未被其他接收器使用的名称。中的描述sink_properties=
是可选的,可以是任何内容。
master_channel_map=
指定我想要映射到的原始接收器的通道。我指定了lfe
两次,因为我想要将左通道和右通道都映射到它。channels=
指定中的通道数master_channel_map=
。
channel_map=
指定新创建的虚拟接收器应具有哪些通道,以及它们映射到原始接收器的哪个通道。必须有与 中完全相同的条目数master_channel_map=
。
remix=no
禁用频道之间不必要的重新混合,如PulseAudio 文档。