wwmm / easyeffects

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

EasyEffects do not apply to Zoom #3176

Open lockie opened 2 weeks ago

lockie commented 2 weeks ago

EasyEffects Version

7.1.3

What package are you using?

Gentoo

Distribution

Gentoo profile ver. amd64/23.0/split-usr/desktop stable

Describe the bug

When the audio is played or being recorded in Zoom, the app list in both "Players" and "Recorders" is empty and effects are not applied to sound in Zoom whatsoever. I'm using Zoom 6.0.2.4680 along with Pipewire 1.0.5.

Expected Behavior

When the audio is played or being recorded in Zoom, it is displayed in "Players" or "Recorders" list and effects are applied.

Debug Log

No response

Additional Information

No response

violetmage commented 2 weeks ago

In order to find the issue, we will need some more information:

What input and output devices are selected in zoom?

What are the settings on the pipewire tab of easyeffects set to?

What input / output device have you set as default in your system settings?

lockie commented 2 weeks ago

Sure.

What input and output devices are selected in zoom?

It has my external USB audio card selected. Note EasyEffects works perfectly when using the same audio card in Audacity, Skype or virtually any other application.

What are the settings on the pipewire tab of easyeffects set to?

It has "Use Default Input" and "Use Default Output" set to On. Input is pre-selected to be the external audio card, output is pre-selected to be my default motherboard audio output.

What input / output device have you set as default in your system settings?

I'm not sure what do you mean by those, Gentoo does not have centralized system settings management. If I look in pavucontrol though, output device marked as "fallback" is again set to my built-in motherboard audiocard, and input device marked as "fallback" is my external USB audiocard.

wwmm commented 2 weeks ago

@lockie kill EasyEffects easyeffects -q and restart it in debug mode G_MESSAGES_DEBUG=easyeffects easyeffects. After that start a Zoom playback or recording stream so we can see what is shown in the logs.

That being said for even the playback stream to not be visible the most likely explanation is Zoom doing something weird on their end.

wwmm commented 2 weeks ago

I'm assuming Zoom was never put in EasyEffects blocklist. This is easy to check. Just open the blocklist menu.

lockie commented 2 weeks ago

There was literally nothing happening in EasyEffects logs when I was fiddling with Zoom audio test. Here's the full log anyway: https://pastebin.com/gn6kDx80

violetmage commented 2 weeks ago

To be sure, you are using the zoom flatpak, correct?

Also, does the audio work correctly if you manually select easyeffects sink/source in zoom?

Edit: Just found this issue on the zoom flatpak github.com/flathub/us.zoom.Zoom

violetmage commented 2 weeks ago

Honestly, from what I can remember, using the native zoom client was so problematic that I ended up telling everyone who would listen to just use the web client. No complaints since then, seems more reliable. Of course, if you need a feature exclusive to the native client, then that makes the situation more difficult.

wwmm commented 2 weeks ago

There was literally nothing happening in EasyEffects logs when I was fiddling with Zoom audio test. Here's the full log anyway: https://pastebin.com/gn6kDx80

Strange... Is Pavucontrol showing its streams? Usually any stream that can be seen in Pavucontrol should also be visible in EasyEffects unless the stream is somehow being blocked by the blocklist. What happens if you use Pavucontrol to move Zoom's streams to EasyEffects virtual devices?

There are developers that set a Pulseaudio flag that does not allow third party tools to move streams to custom devices. But even in these cases the stream is usually visible in our window. EasyEffects is just unable to apply effects to them.

lockie commented 2 weeks ago

@violetmage

To be sure, you are using the zoom flatpak, correct?

Nope, I'm using system package, which in turn just unpacks official tarball.

Also, does the audio work correctly if you manually select easyeffects sink/source in zoom?

Strange thing is, Zoom does not have anything related to EasyEffects in its audio devices list, only hardware devices (external audiocard, built-in audiocard and a webcamera).

I ended up telling everyone who would listen to just use the web client

I'd love to ditch this proprietary crap, but unfortunately I have to use it for my job.

@wwmm

Is Pavucontrol showing its streams?

No, not really.

I'll try disabling pulseaudio useflag on zoom and downgrading, perhaps this will help.

lockie commented 2 weeks ago

All right, this didn't help either.

I understand Zoom does something terribly wrong, but how do I even formulate what exactly? Bypassing standard pulse streams?..

violetmage commented 2 weeks ago

There's not much anyone can do if Zoom refuses to follow the standards.

Also, just for the sake of clarity, by "web client", I mean that zoom does have an official, first party web client. https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0064261#h_01FGW753J4PVWY94DCEQQTAQ1Q

wwmm commented 2 weeks ago

Is Pavucontrol showing its streams? Is Pavucontrol showing its streams? No, not really.

If its stream are not visible in Pavucontrol it is unlikely they will be visible in EasyEffects. As Zoom is still using Pulseaudio API its streams should be visible in Pavucontrol. It is weird they they aren't.

I understand Zoom does something terribly wrong, but how do I even formulate what exactly? Bypassing standard pulse streams?..

To be honest I am also not sure about how to describe it. It isn't bypassing pulse audio streams because this isn't how things work. The audio player creates its playback stream. And this stream should be visible to audio managers like pavucontrol and easyeffects. Maybe there is some kind of pulseaudio API that allows this visibility to be disabled. But I do not remember having ever seen something even close to this.

Digitalone1 commented 2 weeks ago

To be honest I am also not sure about how to describe it. It isn't bypassing pulse audio streams because this isn't how things work. The audio player creates its playback stream. And this stream should be visible to audio managers like pavucontrol and easyeffects. Maybe there is some kind of pulseaudio API that allows this visibility to be disabled. But I do not remember having ever seen something even close to this.

https://github.com/wwmm/easyeffects/issues/701#issuecomment-639504357

Should be a duplicate of #701 and I'm quite surprised this is still happening on Pipewire.

wwmm commented 2 weeks ago

To be honest I am also not sure about how to describe it. It isn't bypassing pulse audio streams because this isn't how things work. The audio player creates its playback stream. And this stream should be visible to audio managers like pavucontrol and easyeffects. Maybe there is some kind of pulseaudio API that allows this visibility to be disabled. But I do not remember having ever seen something even close to this.

#701 (comment)

Should be a duplicate of #701 and I'm quite surprised this is still happening on Pipewire.

But in that issue the stream was still present in our logs and probably in pavucontrol too. We just did not have permission to move it to another device. Now it seems it is not even visible.