我正在运行完全更新的 Manjaro linux。直到最近,我还有 2 个 Fireface 800,它们是火线,我使用了 jack 和 ffado,它将两个 8 通道设备组合成一个可从 portaudio 使用的虚拟 16 通道设备。当我通过字时钟同步时,漂移不是问题。
作为升级,我购买了两张 RME Fireface UFX + 卡,每张卡都有 8 个模拟通道。我还想切换到 Pipewire,但设置相同:单个 16 通道虚拟设备。为了进行测试,我在另一台带有内置声音芯片和 USB 声卡的机器上,我假设这里的工作配置可以很好地转换为带有 RME 的机器。我正在尝试配置 Pipewire 来执行我想要的操作,我想我已经很接近了,但它工作得不太正常。这是我所做的:
我首先复制了 pipelineconf 文件:
mkdir ~/.config/pipewire
cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire
然后我编辑了配置文件并在 context.modules 中添加了以下代码块:
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "4_channel_output"
node.description = "4-channel Output"
combine.props = {
audio.position = [ FL FR SL SR ]
}
stream.props = {
stream.dont-remix = true
}
stream.rules = [
{ matches = [
{ media.class = "Stream/Output/Audio" #"Audio/Source"
node.name = "alsa_output.pci-0000_00_1f.3.analog-stereo"
} ]
actions = { create-stream = {
audio.position = [ playback_FL playback_FR ]
combine.audio.position = [ FL FR ]
} } }
{ matches = [
{ media.class = "Stream/Output/Audio" #"Audio/Source"
node.name = "alsa_output.usb-TEAC_TEAC_USB_AUDIO_DEVICE-02.analog-stereo"
} ]
actions = { create-stream = {
audio.position = [ playback_FL playback_FR ]
combine.audio.position = [ SL SR ]
} } }
]
}
}
然后我重新启动管道:
systemctl --user restart pipewire.service
这已经很接近了。当我在portaudio中选择pipewire设备时,我可以将声音播放到4个通道。但我只能听到 USB (TEAC) 设备发出的声音。 pa_out_ch1 -> usb_ch1; pa_out_ch2 -> usb_ch2; pa_out_ch3 -> usb_ch1; pa_out_ch4 -> usb_ch2。我从板载芯片中听不到任何声音。
我究竟做错了什么?
答案1
我在 Manjaro KDE 和 pipelinewire 中使用多个不同的 USB 接口。我意识到这与您的设置完全不同。不过,我认为您可能会像我一样幸运,安装 pavucontrol 或 pavucontrol-qt(如果是 KDE)。然后从 pavucontrol 应用程序将您的接口设置为“Pro Audio”。
我的 RodeCaster II Pro 仅在 qpwgraph 等中显示 2 个通道,而没有执行此操作。将 pavucontrol 设置为 Pro Audio 后,我可以获得所有 16 个输入和所有 6 个输出。它们功能齐全。
我的 Audient EVO8 上有同样的初始问题和完整解决方案。