Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

weird quirks / issues that occurs randomly #2002

Open
ghost opened this issue Nov 21, 2022 · 25 comments
Open

weird quirks / issues that occurs randomly #2002

ghost opened this issue Nov 21, 2022 · 25 comments

Comments

@ghost
Copy link

ghost commented Nov 21, 2022

EasyEffects Version

7.0.0

What package are you using?

Flatpak (Flathub)

Distribution

Fedora 36

Describe the bug

Note: I can't manually reproduce it. It seems completely random to me.

The original comment is here: #1994 (comment), Digitalone1/EasyEffects-Presets#11 (comment)

I've encountered issues that are very similar to descriptions in #1994 (comment).

Audio distortion and volume change occurs randomly, disabling / excluding the application from EasyEffect doesn't help. I've not yet tried the Global Bypass (because it happens randomly, i can only try one thing at a time).

The reliable way to fix all the quirks is to kill EasyEffect in System Monitor, and the audio instantly turns back to normal. But then it may occur again randomly. It's not frequent but it does happen once in a while.

The most recent one occurs today (21/11/2022), the volume turns very low as i'm playing the music with Lollypop. This time i didn't force stop EasyEffect but instead try to change the volume level for a bit, then the volume turns back to normal, generally matching the description from original issue (except it's quiter for me):

the volume may be different after a reboot (louder for me) - adjusting the volume, even a tiny amount, causes the level to jump back to normal and all seems ok again

Everything occured in the past that I could remember:

  • EasyEffect's effect still got applied to Lollypop, despite it being excluded (Both Enable and Exclude are checked), fixed by unchecking Enabled
  • All sounds are broken into pieces, it feels like pausing and resuming the music very frequently. Fixed by force stopping EasyEffect. This occurs multiple times. I thought this would be related to cpu scheduler, but even after giving it -19 nice level it still occurs randomly
  • Audio distortion, I can't describe it but it sounds very cheap, this generally only occurs for a few seconds and then turns back to normal

I've used this loudness equalization preset, the same as the original issue. but the preset author state that it's more of a general EasyEffect issue than preset-specific issue.

Sadly because it occurs complete randomly and it doesn't occur frequently, I can't just open EasyEffect with debug output all the time.

Expected Behavior

No response

Debug Log

Debug Log
Paste your log here

Additional Information

This issue wasn't present before. I can't say the exact timeframe but it's clearly before the changes in Gate that broke legacy version of EasyEffects Presets, as I never had the issue when i was using the old version.

But this might be not relevant, it could also be a pipewire / wireplumber update that breaks my audio.

@ghost
Copy link
Author

ghost commented Nov 21, 2022

Is there a way to manually attach to the running instance of EasyEffect and capture some of running state and useful informations? similar to backtraces used by abrt and kde? Because without a reliable way to reproduce or a reason it's happening i doubt it would get fixed.

@ghost ghost changed the title volume change / distortion that occurs randomly weeird quirks / issues that occurs randomly Nov 21, 2022
@ghost ghost changed the title weeird quirks / issues that occurs randomly weird quirks / issues that occurs randomly Nov 21, 2022
@wwmm
Copy link
Owner

wwmm commented Nov 21, 2022

This issue wasn't present before. I can't say the exact timeframe but it's clearly before the changes in Gate that broke legacy version of EasyEffects Presets, as I never had the issue when i was using the old version.

As far as I can see there is nothing wrong with the new gate. But as it has different parameters it probably has to be configured in a different way.

the volume turns very low as i'm playing the music

In my opinion this is just the signal getting lower than the gate threshold. And as a result the gate attenuates it even more. Once you manually adjusts the volume up the signal gets above the gate threshold and the attenuation that was being applied is removed.

Is there a way to manually attach to the running instance of EasyEffect and capture some of running state and useful informations? similar to backtraces used by abrt and kde? Because without a reliable way to reproduce or a reason it's happening i doubt it would get fixed.

No. And based on the king of problem you are describing it would be pointless. If it is just the gate threshold not being high enough for the typi5 signal level you feed to it nothing unusual would be seen in debug or similar output.

@wwmm
Copy link
Owner

wwmm commented Nov 21, 2022

disabling / excluding the application from EasyEffect doesn't help

If that is the case then it has nothing to do with the gate plugin or even easyeffects. When the stream is disabled it is bypassed from the effects pipeline.

@ghost
Copy link
Author

ghost commented Nov 21, 2022

disabling / excluding the application from EasyEffect doesn't help

If that is the case then it has nothing to do with the gate plugin or even easyeffects. When the stream is disabled it is bypassed from the effects pipeline.

This would assume it's pipewire / wireplumber bug triggered by EasyEffect? because when I force stopped EasyEffect the audio turns back to normal. If that's the case I think I need to report to upstream. (where to report though? pipewire-pulse or wireplumber?)

@wwmm
Copy link
Owner

wwmm commented Nov 21, 2022

This would assume it's pipewire / wireplumber bug triggered by EasyEffect? because when I force stopped EasyEffect the audio turns back to normal. If that's the case I think I need to report to upstream. (where to report though? pipewire-pulse or wireplumber?)

It depends. When you bypass the signal does the volume level go back to what it is supposed to be while bypass is enabled? If yes then it is a gate configuration problem. But if the volume is not ok even while bypassing all effects then I don't think the problem is on our side.

@ghost
Copy link
Author

ghost commented Nov 21, 2022

Ok, got it. I guess i'll wait for the next time it occurs and try it.

@ghost
Copy link
Author

ghost commented Nov 22, 2022

This occurs just now:

  • All sounds are broken into pieces, it feels like pausing and resuming the music very frequently. Fixed by force stopping EasyEffect. This occurs multiple times. I thought this would be related to cpu scheduler, but even after giving it -19 nice level it still occurs randomly

Triggered by playing video in LibreWolf (Firefox fork).

The symptom is complicated:

  1. Right after the issue occurs, I opened EasyEffect GUI. Global Bypass doesn't work: After toggling it, the audio stream still goes over Easy Effects Sink and audio visualization is still there
  2. Toggling Enable and Exclude doesn't fix the issue immediately. It does turn off effects immediately but the "broken into pieces" issue goes away after a while
  3. When "broken into pieces" occurs, EasyEffect's audio visualization also looks laggy, the "frame rate" is very low.
  4. As soon as PulseAudio Volume Control GUI is opened, the audio turns back to normal (I opened it to try to change output device)
  5. As soon as PulseAudio Volume Control GUI is closed, the audio issue occurs again (Doesn't it sound like this comment Popping/Crackling/Stutter when starting playback  #1856 (comment))

And, just as I'm experimenting, the EasyEffect now looks completely stuck. Anything going over Easy Effects Sink is now complete silent and EasyEffect GUI's audio visualization also stuck there (it doesn't go empty, it just stuck there). changing output device to physical one makes the audio work again.

image
(I'm playing audio background, yet the visualization looks just like this still image)

Edit: Oh, toggling Global Bypass makes the sound works again, without force stopping EasyEffect (And this time toggling Dlobal Bypass does make some changes unlike the beginning of this comment, the effect is similar to toggling Enable, audio effect is turned off but issue is still there)

@ghost
Copy link
Author

ghost commented Nov 22, 2022

I was trying to record a video (using my phone) but then EasyEffect just froze

image

It didn't go responsive again so i had to close it and reopen it, so now the issue is gone again and i have to wait for next time.

@wwmm
Copy link
Owner

wwmm commented Nov 22, 2022

After toggling it, the audio stream still goes over Easy Effects Sink and audio visualization is still there

This is normal. The bypass removes only the plugins from the pipeline. Audio will still pass through our virtual sink and the spectrum plugin.

Toggling Enable and Exclude doesn't fix the issue immediately. It does turn off effects immediately but the "broken into pieces" issue goes away after a while

When "broken into pieces" occurs, EasyEffect's audio visualization also looks laggy, the "frame rate" is very low.

The probability this is being caused by the gate plugin seems very low. I would expect a little bit of silence but not changes in frame rate. This seems to be related to latency (audio buffer size) or sampling rate changes.

As soon as PulseAudio Volume Control GUI is opened, the audio turns back to normal (I opened it to try to change output device)

As soon as PulseAudio Volume Control GUI is closed, the audio issue occurs again

Usually when Pavucontrol is opened PipeWire switches to a lower latency. So PipeWire's automatic latency switching seem to be related somehow...

@wwmm
Copy link
Owner

wwmm commented Nov 22, 2022

And, just as I'm experimenting, the EasyEffect now looks completely stuck. Anything going over Easy Effects Sink is now complete silent and EasyEffect GUI's audio visualization also stuck there (it doesn't go empty, it just stuck there). changing output device to physical one makes the audio work again.

Is there anything suspicious in the system logs or maybe in PipeWire's logs? Some problem in lower level libraries may be happening on your side. At least on my computers I do not see this problem(I use Arch Linux).

@ghost
Copy link
Author

ghost commented Nov 22, 2022

Is there anything suspicious in the system logs or maybe in PipeWire's logs?

Searching through journalctl I can't find anything useful.

These are the only things that seem relevant:

Nov 22 03:21:51 fedora pipewire[2465]: mod.protocol-native: 0x5566e5a4bd10: connection_data: client 0x5566e5c029f0 error -71 (Protocol error)
Nov 22 03:21:51 fedora easyeffects[3537]:         pipe_manager.cpp:1375        Remote error res: Broken pipe
Nov 22 03:21:51 fedora easyeffects[3537]:         pipe_manager.cpp:1376        Remote error message: connection error

Nov 22 03:35:52 fedora pipewire[2465]: pw.node: 0x5566e5d68f40: scheduling non-active node
Nov 22 03:35:52 fedora systemd[1176]: dbus-:1.3-com.github.wwmm.easyeffects@0.service: Main process exited, code=exited, status=143/n/a
Nov 22 03:35:52 fedora systemd[1176]: dbus-:1.3-com.github.wwmm.easyeffects@0.service: Failed with result 'exit-code'.
Nov 22 03:35:52 fedora systemd[1176]: app-flatpak-com.github.wwmm.easyeffects-130480.scope: Consumed 9.290s CPU time.

(I was making a guess based on the order of the logs but looking at my previous comment time it's completely wrong)

3:16 AM UTC is the time I've sent this comment #2002 (comment)

3:20 AM UTC is the time I've toggled Global Bypass to bring back the audio

3:24 AM UTC is the time EasyEffect froze

3:27 AM UTC is the time I've force stopped EasyEffect

And no coredump at all.

> coredumpctl list --since=today
TIME                           PID  UID  GID SIG     COREFILE EXE                  SIZE
Tue 2022-11-22 03:41:19 UTC 132701 1000 1000 SIGSEGV present  /usr/bin/python3.10 16.5M

(Not related to pipewire and it's long time after EasyEffect was force stopped and restarted)

@arch-btw
Copy link

I posted some additional info in #1856

@arch-btw
Copy link

This is what it sounds like (be sure to unmute the video) :

github.mp4

@wwmm
Copy link
Owner

wwmm commented Nov 30, 2022

This is what it sounds like (be sure to unmute the video) :

@arch-btw run pw-top the next time this happens. The thing in this video may be related to a quantum (latency) that is lower than your hardware can handle.

@arch-btw
Copy link

arch-btw commented Dec 1, 2022

@wwmm thank you for your help. I was able to capture with pw-top when it happened:

capture

@arch-btw
Copy link

arch-btw commented Dec 1, 2022

github2.mp4

@wwmm
Copy link
Owner

wwmm commented Dec 1, 2022

I was able to capture with pw-top when it happened:

A latency of 1024 / 48000 = 0.021 seconds should be fine in all hardware. Something else is causing all that noise. Run pw-dot. Its output file can be viewed with xdot and will show how filters and devices are linked as well as each link state. Maybe something unusual happened when the links were made.

Which plugins did you enable?

@arch-btw
Copy link

Sorry for the late response. I have:

  • Convolver
  • Bass Enhancer
  • Bass Loudness

In that order and in Convolver I have an impulse file loaded.

@wwmm
Copy link
Owner

wwmm commented Dec 20, 2022

In that order and in Convolver I have an impulse file loaded.

The only situation where our convolver is known to generate noises is when PipeWire switches latency or sampling rate. But when this happen what is heard is not that continuous strong noise in your video. Unless PipeWire is crazily switching latency without stopping. But I doubt something like this could happen.

@wwmm
Copy link
Owner

wwmm commented Dec 20, 2022

This is what it sounds like (be sure to unmute the video) :
github.mp4

I have just seen this problem happening on my computer and I could observe the following:

  • Bypassing all the effects did not make it go away
  • Disabling effects for the stream did not make it go away
  • Only after quitting easyeffects sound went back to normal

This is really weird because when the global bypass is enabled the pipeline becomes

audio player -> null sink -> soundcard

And when the Enable checkbox is disabled the audio player is linked directly to the soundcard

audio player -> soundcard

Our null-sink is just an ordinary PipeWire module. In other words it is not easyeffects code. The only thing I can think of is that when "special conditions are met" something goes really wrong inside PipeWire when filters are loaded and once they are removed whatever it was causing the problem goes away.

I am not sure about how to even ask PipeWire developers for guidance... We may be just a victim of some kind of PipeWire bug.

@arch-btw
Copy link

@wwmm Wow great job!! I wish I had more to add but my knowledge on this is very limited. It does seems like it happens when I pause one application with an audio stream and then start the other, but it's difficult to confirm the actual "pausing" is the problem. It might just be that some applications are simply affected and that others aren't. Some of them appear to be immune to it.

@arch-btw
Copy link

arch-btw commented Mar 9, 2023

Quick update: killing the easyeffects process and then starting it again is a temporary fix for this. Up until now I kept resetting settings and re-importing my profile and while that works too, it's more work.

I also noticed a helpful comment about restarting the service here, that might be even easier: #1355 (comment)

@kode54
Copy link

kode54 commented Aug 16, 2023

Is this any relation to a bug I've been having lately? Using 7.0.7, distribution package, on Arch, with Pipewire 0.3.77-2, also distribution package. The issue seems to come up any time something starts or stops playing audio with the pipewire-pulse daemon, and doesn't seem to affect clients using pipewire directly. It manifests as all outputs briefly bypassing the output effects chain, and since my current output effect (convolver) does attenuate audio, this results in the audio briefly playing loudly.

@wwmm
Copy link
Owner

wwmm commented Aug 16, 2023

Is this any relation to a bug I've been having lately?

It depends. The bug in this issue is of the kind that comes with this type of noise #2002 (comment). I haven't seen it since the time this issue was opened. So maybe PipeWire has fixed it. As you are using the convolver and it does not handle PipeWire's dynamic latency switching well you may be able to workaround your problem by settings a fixed PipeWire latency.

@kode54
Copy link

kode54 commented Aug 31, 2023

Is this any relation to a bug I've been having lately?

It depends. The bug in this issue is of the kind that comes with this type of noise #2002 (comment). I haven't seen it since the time this issue was opened. So maybe PipeWire has fixed it. As you are using the convolver and it does not handle PipeWire's dynamic latency switching well you may be able to workaround your problem by settings a fixed PipeWire latency.

I found an alternative that seems to work, and I should suggest it to the autoeq.app maintainer(s) instead of Convolver. Basically, exporting the headphone preset as EqualizerAPO Parametric EQ txt file, then importing it into the EasyEffects Equalizer filter, using the APO button. The GraphicEQ presets use way too many band ranges and not as effective settings, and therefore can't really be imported into the Equalizer plugin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants