我在 OBS 的论坛上有一个关于让该应用程序专门与其他东西共享的问题,但我在这个网站上的问题来自不同的方向。我可以让 Ubuntu 本身从多通道卡中分配特定通道到不同的应用程序,而不是让一个特定的应用程序不是独占的,否则这些应用程序会像 OBS 那样独占控制整个卡吗?
Lubuntu 20.04,有问题的卡是 Behringer X32 数字声卡的 32 通道 USB 接口。我可以将 X32 内部的任何信号路由到 USB“声卡”的任何通道,以便路由可以在需要时绕过其他一些要求。
我需要 OBS 接收一对立体声,另一个录音机接收 1 个通道作为单声道(可能是 ffmpeg,但不一定,因为该录音也需要视频,与 OBS 分开),以及 Ardor(一个 DAW)接收 24 个通道作为多轨。都是同时的。
目前,我的路由在上部 24 (#'s 9-32) 上有多轨,在 1&2 上有立体声对,其余 6 (#'s 3-8) 静音,这样 OBS 坚持的 7.1 下混音器就不会混淆. (除了下混器忽略的“低音炮”音轨,因此我现在将单声道辅助音轨放在上面)再一次,如果需要,我可以重新排列所有这些通道分配,但它们必须都在同一个 32-通道 USB 卡。
我可以将这些频道拆分到需要它们的相应应用程序,以便每个应用程序都可以“独占”控制它认为分配的卡,只有所需的频道数?
- OBS 看到了立体声卡,不再坚持 7.1 缩混。
- ffmpeg 或任何看到单声道卡的东西,不需要在自己的命令行上过滤频道。
- 如果解决方案允许我像这样进行整合,Ardor 会看到 24 通道多轨或 28-29 通道。(将辅助配乐放在#3 上,其余的交给 Ardour)如果 Ardor 看到所有 32 个,也可以,但不是必需的,但我不想依靠Ardor 来让其他人工作。所以在 Ardour 中没有通过,即使它在技术上可以解决问题。
2020 年 11 月 8 日更新:
我已经做到了这一点,到目前为止它似乎还有效,但是为了使它成为 OBS 中的永久来源,而不是被绑定到特定场景(并且忘记将其添加到一个关键场景中),看来我需要它成为 PulseAudio 设备。那么我怎样才能让 Jack 进入一个像其他 PA 设备一样枚举的 PA 环回呢?
这就是我所缺少的!
https://www.youtube.com/watch?v=6J-RQudJx30
显然,Google 认为告诉我 PulseAudio 现在可以直接与 Jack 合作并不重要。很多关于这个确切问题的论坛问题没有答案......
无论如何,根据视频设置它,PA创建一个环回设备供Jack连接。然后杰克像众所周知的那样建立联系。
基本上,这些步骤是:
如果还没有安装 Jack。
sudo apt install jackd
为其安装 PulseAudio 模块。
sudo apt install pulseaudio-module-jack
编辑 PA 的配置文件。
sudo nano /etc/pulse/default.pa
(视频用vim,我更喜欢nano,你用你喜欢的)
在下面添加几行
### Load audio drivers statically...
load-module module-jack-sink
load-module module-jack-source
在下面添加更多行
### Make some devices default
set-default-sink jack_out
set-default-source jack_in
保存并关闭文件。
重新启动 PulseAudio。重新启动整个机器可能是最简单的,这也可以作为“重新启动生存”测试,在你完全依赖它之前,无论如何你都应该这样做。
现在,当系统启动并启动 PulseAudio 时,它也会启动 Jack 并将其设为默认值。(熟悉的 GUI 控件中的“后备”)
你还没有任何声音,因为 Jack 默认没有连接任何东西。因此,打开“连接”窗口,单击每一侧的单个通道,然后单击底部的“连接”。你现在应该有声音了!您的连接选项现在在 Jack 中,非常灵活。
如果您想让您的连接在重新启动后仍然存在,您可以定义一个连接文件并在启动时加载(激活 Patchbay 持久性):
此处显示了如何创建该文件,并且不是很直观:
https ://www.rncbc.org/drupal/node/76
您需要使用 Patchbay,而不是 Connect 窗口。为什么它们如此相似但仍然分开,我不知道,也不知道为什么易于使用的“连接”窗口不只是有一个保存按钮来为您完成所有这些操作。但无论如何,这至少是可能的,方法如下:
您可能会注意到这里的连接不再是单个通道之间的连接,而是设备之间的连接,并且并非所有设备都拥有它们可以拥有的所有通道。与其他工具相比,这是该工具工作方式的第一眼不直观的差异。
要设置持久补丁,首先单击左上角的新建按钮,不要让它创建现有连接的快照。它不是那么聪明,而且会出错。相反,从一张白纸开始,创建一组自定义设备,每个设备都具有您想要作为一个组连接的特定通道。
每侧的添加按钮会打开此窗口:
为这个新设备命名,并选择它使用的客户端。(多个设备可以使用同一个客户端,所以不用担心自己被锁定)然后只添加这个特定设备将要使用的通道(“Plugs”)。所有这些通道都将按照它们在此处出现的顺序连接到另一个设备的所有通道。您也可以重命名每个频道,但我认为如果您自定义它那么容易忘记哪个是什么。
以这种方式在每一侧创建所有设备或“通道组”,然后在设备级别连接它们,方法是在每一侧单击一个,然后单击底部的连接按钮。
(我也有一些完全计数的设备,它们不会去任何地方,只是为了提醒我正在使用什么。)
现在,您可以在“激活 Patchbay 持久性”中保存设置窗口所需的 .xml 文件。
并设置
qjackctl
为在启动时运行,以便它可以反过来加载该文件。用户空间很好;它不需要是根。