如何将LADSPA插件应用于PulseAudio流?

我想将LADSPA插件应用于通过默认PulseAudio接收器流的所有内容。 我该如何设置?

使用module-ladspa-sink完成向pulseaudio添加LADSPA插件。

我们将此模块安装为输出接收器,我们可以在其中定义处理模块,并能够将处理后的信号发送到这个新创建的接收器。

加载LADSPA模块:

该模块可以在运行时加载:

pacmd load-module module-ladspa-sink sink_name= master= plugin= label= 

可以使用以下命令读取主接收器的名称:

  pacmd list-sinks 

为处理后的接收器命名,因为它将出现在sink_name的输出列表中。 所有其他选项取决于我们使用的插件(参见下面的示例)。

要应用LADSPA处理器,我们从“声音设置…”中选择输出接收器,现在可以监听已处理的流。 控制选项不能在运行时更改。

卸载LADSPA模块:

我们将不得不卸载模块并再次加载它以获得不同的选项。 要查找卸载的模块索引,我们可能会发出:

  pacmd list-modules 

要卸载模块,我们要么使用pulseaudio -k重新启动声音服务器,要么使用索引编号#卸载模块:

 pacmd unload-module <#> 

另请参阅pulseaudio的参考wiki 。

在启动时加载LADSPA模块:

找到合适的选项后,我们可能希望默认运行它。 这可以通过将其包含在/etc/pulse/default.pa配置文件中来完成,该文件将在启动时由守护程序加载:

 .ifexists module-ladspa-sink.so .nofail load-module module-ladspa-sink  .fail .endif 

例:

这是一个特殊情况的示例,可以让您了解如何执行此操作。 在这个例子中,我们想要使用TAP-plugin tap_pitch ( tap-plugins)将音调偏移应用于我们的声音输出 安装tap-plugins )。 对于此插件,加载到Pulse Audio所需的其他选项如下:

 plugin=tap_pitch # as from /usr/lib/ladspa/ without .so label=tap_pitch # defines which label of a plugin to use 

为了找到合适的控制选项,我们浏览到插件文档(这里是TAP插件音高变换器 )。 在那里我们找到了一个很好的表,其中包含我们必须在control=命令中应用的四个相关控件:

 control=,,, 

如果选项为空,则在这种情况下将使用默认值。

因此,以下命令将从我的主接收器alsa_output.pci-0000_00_14.2.analog-stereo (用您的接收器替换)向下移动一个八度音程到输出接收器ladspa_out ,半音移位为-12 ,即速率偏移为-50 %,干燥(未处理)混频器电平为-90 dB,湿(处理)电平为0 dB。

 pacmd load-module module-ladspa-sink sink_name=ladspa_out master=alsa_output.pci-0000_00_14.2.analog-stereo plugin=tap_pitch label=tap_pitch control=-12,-50,-90,0 

对于某些插件,文档可能不完整,或者适当的设置需要进行一些实验,直到它们是正确的。