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

Sound randomly disappears, the player needs to be disabled for it to come back #3127

Open Slater91 opened 4 months ago

Slater91 commented 4 months ago

EasyEffects Version

7.1.6

What package are you using?

Flatpak (Flathub)

Distribution

KDE neon (Ubuntu 22.04)

Describe the bug

With Easy Effects open, at seemingly random moments, the sound disappears. Checking Easy Effects shows that the visualiser is inactive (i.e. like when nothing is playing). The player appears as enabled, but unchecking the box so that it is disabled seems to actually restore functionality and the sound comes back. I have seen this specifically with Strawberry and Firefox.

Expected Behavior

If the player is enabled, it plays sound.

Debug Log

No response

Additional Information

Here is the output of pw-dot.

pw-dot-20240508.txt

wwmm commented 4 months ago

The player appears as enabled, but unchecking the box so that it is disabled seems to actually restore functionality and the sound comes back.

This feels like some issue in PipeWire or WirePlumber. Which version do you have installed? Ubuntu users need to install a more recent PipeWire/WirePlumber through a PPA. The one from the stable repositories is too old and does not work with the latest EasyEffects releases.

Slater91 commented 4 months ago

Sorry, I forgot to specify that. PipeWire 1.0.3, WirePlumber 0.4.8, both installed through a PPA. Not the latest strictly, but close enough!

wwmm commented 4 months ago

PipeWire 1.0.3, WirePlumber 0.4.8

This PipeWire version should be fine. I am not sure about the one for wireplumber. I have 0.5.2 here on Arch Linux.

Although EasyEffects does not interact directly with WirePlumber the PipeWire functions we call when moving players to our virtual sink are directly related to WirePlumber. Usually when something in this area is not working properly the reason is a bug in WirePlumber.

Kill EasyEffects and restart it in debug mode https://github.com/wwmm/easyeffects/wiki/Reporting-Bugs#basic-logs so we can see if there are error messages when the enable checkbox state switches between on and off.

sim590 commented 1 month ago

I have the same issue here on Arch since my last update I think. I'm on Easyeffects 7.1.7 and wireplumber 0.5.5-1.

During my last package upgrade for EasyEffects (on June 30th), I got the following version changes:

However, I am pretty sure I have not had these issues since 25 days days though. I think it's been about a week. I suspect my last update which had these EasyEffects packages update (I used pactree -u -l easyeffect to filter out pacman.log):

Dependencies of Easyeffects updated during my last package upgrade ``` alsa-topology-conf cantarell-fonts dconf default-cursors device-mapper duktape flac gdbm glib2 glib-networking gsettings-desktop-schemas gtk4 gtk-update-icon-cache krb5 ladspa lame libepoxy libomxil-bellagio libpipewire libproxy librsvg libxml2 libyaml llvm-libs lm_sensors mesa pipewire speexdsp zita-convolver ```

Obviously, I would suspect either the update to pipewire or libpipewire which had these version changes:

I'm confused though about the the version numbers that OP reported about pipewire and wireplumber. I believe strongly that I didn't have this issue before pipewire 1.2.1. Yet OP reported using Pipewire 1.0.3 and Wireplumber 0.4.8 and having the issue.

So may be, this information is unrelevant or I'm misremembering about when I first encountered that issue, orrrr... this is a reoccurring issue which disappeared somewhere between our two versions. I don't know. I might be mistaken somewhere.

I'll try to report about debug messages that I get whenever it happens again.

wwmm commented 1 month ago

Now that I am reading again this bug report I think that what is happening here is the new version of an old PipeWire's bug https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3547. For some reason it seems to have become worse in the last 2 months and now both channels can become silent.

sim590 commented 1 month ago

The bug happened again now. I have this log:

Log ``` (easyeffects:273092): easyeffects-DEBUG: 15:59:39.680: pipe_manager.cpp:1035 new metadata property: 102, target.object, Spa:Id, 5537 ^[(easyeffects:273092): easyeffects-DEBUG: 16:00:05.170: pipe_manager.cpp:1035 new metadata property: 102, target.node, , (easyeffects:273092): easyeffects-DEBUG: 16:00:05.170: pipe_manager.cpp:1035 new metadata property: 102, target.object, , (easyeffects:273092): easyeffects-DEBUG: 16:00:05.171: pipe_manager.cpp:1339 mpv port 174 is connected to alsa_output.pci-0000_0c_00.4.analog-stereo port 59 (easyeffects:273092): easyeffects-DEBUG: 16:00:05.171: pipe_manager.cpp:1339 mpv port 85 is connected to alsa_output.pci-0000_0c_00.4.analog-stereo port 61 (easyeffects:273092): easyeffects-DEBUG: 16:00:05.922: pipe_manager.cpp:1035 new metadata property: 102, target.node, Spa:Id, 72 (easyeffects:273092): easyeffects-DEBUG: 16:00:05.922: pipe_manager.cpp:1035 new metadata property: 102, target.object, Spa:Id, 5537 (easyeffects:273092): easyeffects-DEBUG: 16:00:05.923: pipe_manager.cpp:1339 mpv port 174 is connected to easyeffects_sink port 100 (easyeffects:273092): easyeffects-DEBUG: 16:00:05.923: pipe_manager.cpp:1339 mpv port 85 is connected to easyeffects_sink port 131 (easyeffects:273092): Gdk-WARNING **: 16:00:17.936: Compositor doesn't support moving popups, relying on remapping (easyeffects:273092): easyeffects-DEBUG: 16:00:19.079: pipe_manager.cpp:1035 new metadata property: 102, target.node, , (easyeffects:273092): easyeffects-DEBUG: 16:00:19.079: pipe_manager.cpp:1035 new metadata property: 102, target.object, , (easyeffects:273092): easyeffects-DEBUG: 16:00:19.080: pipe_manager.cpp:1339 mpv port 85 is connected to alsa_output.pci-0000_0c_00.4.analog-stereo port 59 (easyeffects:273092): easyeffects-DEBUG: 16:00:19.080: pipe_manager.cpp:1339 mpv port 174 is connected to alsa_output.pci-0000_0c_00.4.analog-stereo port 61 (easyeffects:273092): easyeffects-DEBUG: 16:00:20.559: pipe_manager.cpp:1035 new metadata property: 102, target.node, Spa:Id, 72 (easyeffects:273092): easyeffects-DEBUG: 16:00:20.559: pipe_manager.cpp:1035 new metadata property: 102, target.object, Spa:Id, 5537 (easyeffects:273092): easyeffects-DEBUG: 16:00:20.560: pipe_manager.cpp:1339 mpv port 85 is connected to easyeffects_sink port 100 (easyeffects:273092): easyeffects-DEBUG: 16:00:20.560: pipe_manager.cpp:1339 mpv port 174 is connected to easyeffects_sink port 131 ```

where I tried to disable and enable the output source MPV and the sound only comes out when I disable the application.

The only way to fix it for good is to restart Easyeffects.

Is there a way to disable by default Easyeffects for audio source? Because I only use Easyeffects for a microphone delay effect.

wwmm commented 1 month ago

Is there a way to disable by default Easyeffects for audio source? Because I only use Easyeffects for a microphone delay effect.

If you only want effects for microphone disable Process All Output Streams in EasyEffects preferences window. After that disable effects for the app manually or through a software like Pavucontrol to for WirePlumber to forget any association it may have made between the stream and EasyEffects.