PulseAudio provides a module-ladspa-sink but no module-ladspa-source, which seems like a strange oversight: being able to apply LADSPA filters to capture streams is at least as useful as being able to apply them to playback streams. In my case, I want to apply noise filters to my microphone input before VoIP apps see it. I'm currently working around PulseAudio's lack of support for this by configuring the desired filters in my .asoundrc using the ALSA<->LADSPA plugin, and then feeding the filtered device to module-alsa-source.
Combinaiton of 'module-loopback' and 'module-ladspa-sink' seems be simple solution.
1) load 'module-ladspa-sink' (e.g sink.ladspa -> sink)
2) load 'module-loopback' (e.g source -> sink.ladspa)
Stream will be flow as below:
source -> sink.ladspa -> sink
('source' would be your microphone.)
What master do you suggest I provide to ladspa in this configuration? Using loopback would allow me to feed filtered microphone input directly back to an output device, but how would it ever reach an application?
I think this is one of example scenario,
1) load module-null-sink. Then, 'null' sink will be created.
2) load module-ladspa-sink. Master sink argument points to 'null' sink. (e.g 'master=null') Then 'null.ladspa' sink will be created which will do process filter.
3) load 'module-loopback'. Sink argument points to 'null.ladspa' sink and source argument points to 'your mic' source. (e.g sink=null.ladspa source='your mic')
The audio stream will be construct as below:
'your mic' source -> 'null.ladspa' sink -> 'null' sink
My suggestion is that application will be able to get filtered mic stream from monitor source of ladspa. (e.g 'null.ladspa.monitor' source)
-- GitLab Migration Automatic Message --
This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/120.