我如何使用 jack 运行 sox,以便 sox 从 jack 获取输入,执行某些操作(在我的情况下是低通滤波器)并将处理后的流输出到 jack。
sox foo.wav bar.wav lowp 1000.0
将获取输入 wav 并输出到另一个 wav,但我需要类似以下内容:
sox JACK_INPUT JACK_OUTPUT lowp 1000.0
我可以使用 jack 将任何声源连接到 JACK_INPUT,并将 sox 已应用低通滤波器的 JACK_OUTPUT 连接到 jack 中处理链中的任何其他端口。
如果这不可能,任何替代建议的帮助都将不胜感激。请注意,该解决方案需要能够与 Linux 上的 jack 配合使用,允许低通/高通滤波,最好是双二阶滤波器,如 sox。如果连接可以唯一命名,以便脚本可以为每个扬声器启动单独的滤波器,则可以获得加分。
提前谢谢了。
答案1
SoX 没有 JACK 驱动程序。编写一个驱动程序并不太难,但由于 SoX 的架构,延迟总是高于严格必要的延迟。
如果你需要的只是简单的 IIR 滤波,只需使用 LADSPA 主机,例如杰克架以及合适的插件,例如Matthias Nagorni 的作品或buttlow_iir
/butthigh_iir
等来自史蒂夫·哈里斯的收藏。