Re: [PATCH] Add support to expose controls of ladspa plugin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2/1/21 4:32 PM, Jaroslav Kysela wrote:
Dne 01. 02. 21 v 16:03 Camel Guo napsal(a):
From: Camel Guo <camelg@xxxxxxxx>

In order for external software components to adjust ladspa plugin
dynamically, this commit adds an option to exposes the control array of
input control ports of a ladspa plugin to a file, through which any
applications with proper permission can control this plugin.

It looks like a pure hack (although the implementation is interesting). The
controls may be exposed via the ctl (control) API like we do in
src/pcm/pcm_softvol.c for example. The floats can be mapped to integer64 or we
may discuss to add the float type to the control API elements.

If there are not so many input controls of a ladspa plugin, I think it is okay to implement it like pcm_softvol.c. But the problem is that some plugins might have more than 100 input controls. For every input control, there will be a system call ioctl in order to get its value. This will make performance really bad. If a ladspa plugin like this needs to support per-channel control, that will make it even worst.

But with shared memory like this, it will become a pure memory read, this will make performance acceptable.

Another benefit of exposing ladspa control array to shared memory is that it makes it possible for any algorithms to connect with these ladspa plugins. The ladspa control array is basically a float-array, which is exactly the input, output of lots of machine learning, deep learning algorithm. Imagine an algorithm listening to the audio stream automatically applies privacy masks on audio stream to mask human voice via ladspa plugins.


                                                 Jaroslav

--
Jaroslav Kysela <perex@xxxxxxxx>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux