wwmm / easyeffects

Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications
GNU General Public License v3.0
6.41k stars 268 forks source link

Loud echo canceller sound gets even more shrill depending on order #1329

Open JumperLuko opened 2 years ago

JumperLuko commented 2 years ago

EasyEffects Version

6.1.5

What package are you using?

Arch (easyeffects)

Distribution

Manjaro

Describe the bug

I'm being very specific, but it might be good for the refinement of the program as well.

If I put echo canceller below the noise reduction, when the sound is very loud, it generates an even more shrill sound, but it doesn't happen if it's just the first one or if I activate the bypass.

My microphone is mono

image image image

Expected Behavior

echo canceller does not generate louder sounds

Debug Log

Debug Log
``` (easyeffects:294433): easyeffects-WARNING **: 13:05:11.165: lv2_wrapper: Could not find the plugin: http://drobilla.net/plugins/mda/Loudness (easyeffects:294433): easyeffects-WARNING **: 13:05:11.165: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: loudness (easyeffects:294433): easyeffects-WARNING **: 13:05:11.165: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: output (easyeffects:294433): easyeffects-WARNING **: 13:05:11.165: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: link (easyeffects:294433): easyeffects-WARNING **: 13:05:11.315: lv2_wrapper: Could not find the plugin: urn:zamaudio:ZaMaximX2 (easyeffects:294433): easyeffects-WARNING **: 13:05:11.315: lv2_wrapper: urn:zamaudio:ZaMaximX2 port symbol not found: thresh (easyeffects:294433): easyeffects-WARNING **: 13:05:11.315: lv2_wrapper: urn:zamaudio:ZaMaximX2 port symbol not found: ceil (easyeffects:294433): easyeffects-WARNING **: 13:05:11.315: lv2_wrapper: urn:zamaudio:ZaMaximX2 port symbol not found: rel (easyeffects:294433): easyeffects-WARNING **: 13:05:11.408: lv2_wrapper: Could not find the plugin: http://drobilla.net/plugins/mda/Loudness (easyeffects:294433): easyeffects-WARNING **: 13:05:11.408: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: loudness (easyeffects:294433): easyeffects-WARNING **: 13:05:11.408: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: output (easyeffects:294433): easyeffects-WARNING **: 13:05:11.408: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: link (easyeffects:294433): easyeffects-WARNING **: 13:05:11.566: lv2_wrapper: Could not find the plugin: urn:zamaudio:ZaMaximX2 (easyeffects:294433): easyeffects-WARNING **: 13:05:11.566: lv2_wrapper: urn:zamaudio:ZaMaximX2 port symbol not found: thresh (easyeffects:294433): easyeffects-WARNING **: 13:05:11.566: lv2_wrapper: urn:zamaudio:ZaMaximX2 port symbol not found: ceil (easyeffects:294433): easyeffects-WARNING **: 13:05:11.566: lv2_wrapper: urn:zamaudio:ZaMaximX2 port symbol not found: rel (easyeffects:294433): easyeffects-WARNING **: 13:05:11.717: effects_base_ui: webrtc voiceengine icon name not installed in the Adwaita icon theme in use. The application icon has been hidden. (easyeffects:294433): easyeffects-WARNING **: 13:05:11.737: effects_base_ui: webrtc voiceengine icon name not installed in the Adwaita icon theme in use. The application icon has been hidden. ```

Additional Information

No response

wwmm commented 2 years ago

The echo canceller definitely needs some work. At least for me it has been very unreliable. I have to see if there is another echo canceller library that is easier to use.

ousia commented 2 years ago

Many thanks for easyeffects, @wwmm.

Reading https://github.com/wwmm/easyeffects/discussions/1442#discussioncomment-2407271, I wonder whether it would be possible that easyeffects could use the PipeWire module for echo cancellation.

Many thanks for your work again.

wwmm commented 2 years ago

I wonder whether it would be possible that easyeffects could use the PipeWire module for echo cancellation.

I doubt it would be possible to fully integrate it. By "fully" I mean that we should be able to set its parameters as well as measuring its input and output signal level. Just putting it in the pipeline is not enough. As far as I am aware these PipeWire modules were designed to be used by PipeWire. They do not work like general purpose audio plugins.

That being said we could try to see how its code is implemented. Depending on its complexity it might be possible to port it to our filter.