Bug 101043 - Please create module-ladspa-source
Summary: Please create module-ladspa-source
Status: RESOLVED MOVED
Alias: None
Product: PulseAudio
Classification: Unclassified
Component: modules (show other bugs)
Version: unspecified
Hardware: All All
: medium enhancement
Assignee: pulseaudio-bugs
QA Contact: pulseaudio-bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-05-15 01:15 UTC by Daniel Franke
Modified: 2018-07-30 09:54 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

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.