Bug 101043

Summary: Please create module-ladspa-source
Product: PulseAudio Reporter: Daniel Franke <dfoxfranke>
Component: modulesAssignee: pulseaudio-bugs
Status: RESOLVED MOVED QA Contact: pulseaudio-bugs
Severity: enhancement    
Priority: medium CC: lennart
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Daniel Franke 2017-05-15 01:15:06 UTC
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.
Comment 1 KimJeongYeon 2017-05-16 04:55:25 UTC
Combinaiton of 'module-loopback' and 'module-ladspa-sink' seems be simple solution.

Sequence:
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.)
Comment 2 Daniel Franke 2017-05-16 10:12:17 UTC
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?
Comment 3 KimJeongYeon 2017-05-16 14:18:17 UTC
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)
Comment 4 GitLab Migration User 2018-07-30 09:54:56 UTC
-- 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.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.