首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pipewire中添加ladspa立体声后处理

在pipewire中添加ladspa立体声后处理
EN

Stack Overflow用户
提问于 2021-11-05 12:00:42
回答 1查看 174关注 0票数 0

如何将LADSPA插件添加到管道配置中以用于音频后处理?

有许多现有的ladspa插件。

ladspa插件必须在立体声(两声道)音频上工作。

EN

回答 1

Stack Overflow用户

发布于 2021-11-05 12:00:42

现有的pipewire模块可以封装任意数量的ladspa插件,称为filter-chain

首先,我们需要在构建系统中添加过滤器链模块。在yocto bitbake食谱中,它是这样添加的:

代码语言:javascript
复制
 RDEPENDS_libpipewire += " \
     ${PN}-modules-client-node \
+    ${PN}-modules-filter-chain \
.....

然后使用过滤器链添加适当的pipewire.conf块,以便在启动pipewire时添加特定的ladspa插件:

代码语言:javascript
复制
{   name = libpipewire-module-filter-chain
    args = {
        node.name = "processing_name"
        node.description = "Specifc postprocessing"
        media.name =  "Specifc postprocessing"
        filter.graph = {
            nodes = [
                {
                    type = ladspa
                    name = plugin_name
                    plugin = libplugin_name
                    label = plugin_name    #this needs to correspond to ladspa plugin code
                    control = {
                        "Some control" = 1234
                    }
                }
            ]
        }
        capture.props = {
            node.passive = true
            media.class = Audio/Sink
            audio.channels=2
            audio.position=[FL,FR]
        }
        playback.props = {
            media.class = Audio/Source
            audio.channels=2
            audio.position=[FL,FR]
        }
    }
}

主要的集成点是节点块中的label部分。这必须与ladspa插件代码相对应。我认为可以使用ladspa id来代替。

然后,捕获/回放属性确定ladspa插件是否将具有用于处理的立体声通道,并且它们描述了为输出和输入创建的节点类型。

每个后处理节点都隐式地有两个节点-一个用于输入,另一个用于输出。

然后,需要将ladspa插件与所选的会话管理器连接。在wireplumber的情况下,我们可以使用lua脚本来检测插件节点并将其连接到适当的接收器(例如,alsa接收器)和客户端节点。

示例图表:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69852935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档