EasyEffects doesn't attach to the correct device
EasyEffects Version
8.0.0
What package are you using?
Flatpak (Flathub)
Distribution
openSUSE Tumbleweed
Describe the bug
Heya,
okay so, I have the following Problem:
EasyEffects is not correctly attaching its own output to my Playback Device. I analyzed the Pipewire connections with Helvum. When I disable an Output Player Stream in EasyEffects, the Source (in my case Vivaldi) correctly attaches to my Headset (JLab Epic Lab Edition Dongle Analog Stereo):
But when I enable the Vivaldi Audio Stream in Easy Effect, it correctly attaches Vivaldi to itself, but then further down the lane it only attaches itself to Spectrum (which is, as far as I can tell, the Spectrum Analyzer in Easy Effects). But neither Spectrum nor Easy Effect Sink attaches itself to my headset. And because of that I get no Audio output to my headset:
Everything works correctly and I get Audio Output if I use Helvum to manually attach Easy Effects Sink like so:
(Notable is, that I am unable to get effects to work if I attach this way, so this manual attachment is probably also wrong somewhere; but thats kinda besides the point).
Interesting is also, that the logs throw
easyeffects: plugin_base.cpp:139 Processing: we received a null left_out pointer. Using the dummy array instead.
easyeffects: plugin_base.cpp:151 Processing: we received a null right_out pointer. Using the dummy array instead.
as soon as I enable a Stream in EasyEffects. So I guess it can't find the pointer to my device?... Anyway, I also attached the full log to this issue.
This issue is a regression from 7.*. On these older Version I had no issues.
Expected Behavior
Easy Effects Properly attaches itself to the correct output device, I set in the Configuration (or the Default Device).
Debug Log
Additional Information
No response
Can you resolve this issue unchecking the Use default output device and selecting your preferred device in the PipeWire tab? Did you also enable the Process all output streams in Preferences -> Audio?
I tried using the default Audio Device, i tried manually selecting the device, I tried to process all streams and I tried to only selectively Process the Streams. The issue always remained the same.
That's weird. Do you have other output devices attached to your system?
Anyway, please, provide a debug log as described here when you enable/disable the application.
I have a few internal audio devices (Onboard HDMI Audio Controller, Webcam, 2 Audio Controller build into my GPU). I can only realistically remove the webcam. The GPU I can't remove, since my Computer uses a CPU and no APU, so I lose display output when removing it. The Motherboard onboard Controller I can't remove for obvious reasons. All these Audio Contoller are disabled in the KDE Sound Settings (I guess KDE uses Wireplumber for that?).
What do you mean with "enable/disable the application"? I already attached a log, where Easy Effects starts and has the Audio Stream disabled. Then I enabled the stream in Easy Effects (at that point my Audio stopped, cause Easy Effects just ate the stream) and then I stopped Easy Effect and collected the logs.
New default output device: alsa_output.usb-MediaTek_Inc_JLab_Epic_Lab_Edition_Dongle_0000000000000000-00.analog-stereo
Hum... We see your default output device correctly. And it is quite odd that the output level meter is not linked to the spectrum in your image. Even if for some reason EE fails to link to your soundcard the output level meter should be linked to the spectrum.
I don't see the easyeffects filters in the pw dump. Did you generate it when Easy Effects was open?
And it is quite odd that the
output levelmeter is not linked to the spectrum in your image.
And according to the logs it was created:
soe: output_level successfully connected to PipeWire graph
. So it should be there even if not linked to anything. Really strange...
Core version: 1.5.81
Here on Arch Linux I have PipeWire 1.4.9 installed. I wonder if PipeWire's development version is doing something that is not compatible with how the new EE version handles things.
@Digitalone1 oh thats what you mean. No the pwdump was without EasyEffects running. Here I have a dump with it active:
@wwmm Okay.. I pulled in an old pipewire version from openSUSE Slowroll (1.4.8)
And this works:
Also, even more interesting, Output Level Meter didn't even exist with the 1.5 Version of Pipewire. So no wonder it couldn't properly attach my device, if the target (Output Level Meter) isn't even present.
Also, even more interesting, Output Level Meter didn't even exist with the 1.5 Version of Pipewire. So no wonder it couldn't properly attach my device, if the target (Output Level Meter) isn't even present.
I wonder how it is even possible that it creates the spectrum plugin but can't do the same to a simpler plugin that is based on the same base class. This may or may not be concerning. I have seen in the past some cases where EasyEffects was broken in PipeWire's development branch but when they released the new version everything was fine.
Good to know things work with PipeWire 1.4.8. I think that all we can do is waiting and see what happens when they release PipeWire 1.5.0.
I wonder how it is even possible that it creates the spectrum plugin but can't do the same to a simpler plugin that is based on the same base class.
Actually like I mentioned before it did create the plugin. But based on your image it clearly decided to remove it. Really bizarre.
Frankly I’m surprised OpenSuse Tumbleweed is shipping a release candidate of PipeWire to begin with. It says here they ship "stable" software: https://en.opensuse.org/Portal:Tumbleweed
Frankly I’m surprised OpenSuse Tumbleweed is shipping a release candidate of PipeWire to begin with. It says here they ship "stable" software: https://en.opensuse.org/Portal:Tumbleweed
I agree. I am the kind of person that is frequently using unstable software. For example I am using a custom package built from Mesa's main branch right now. But putting something like this in the stable distribution repository feels a little too much. It gives the users the idea that upstream developers considered that version stable enough to be sent to the users. What is obviously not the case if they are calling it release candidate.
What they did would be super cool if they were providing it through some kind of "testing" repository like Arch does. Not directly in the one that is supposed to be more stable. On the bright side now I know I have to pay attention to pipewire's 1.5 release.
I've opened a bug for Tumbleweed shipping a PipeWire release candidate: https://bugzilla.opensuse.org/show_bug.cgi?id=1253171
Hi all. While also using openSUSE Tumbleweed, I built the v8.0 package on OBS and haven't had major problems using it. Clearing ~/.local/state/wireplumber may be of help. For those who need it, you can try install using the rpm package from here to see if the problems persist.
Here is my screenshot of qpwgraph:
Sadly similar issue on Zorin OS 17.3 (Pro), which is based on Ubuntu 22.04 LTS.
- Although pipewire in this case is much older and remained unchanged: jammy (22.04LTS 0.3.48-1ubuntu1: amd64)
- ES installed via flatpack: EE 8.0 introduced this issue: spectrum analyzer works, but no sound. EE 7.2.5 works fine.
Workaround for Zorin OS 17.3 (Pro) and, most likely, Ubuntu 22.04 LTS to continue using EasyEffects 7.2.5 in the meantime:
# install EasyEffects 7.2.5 (instead of latest 8.0.0)
flatpak update --commit=60ee3006f02548f980d8766d9c0192669dea463de333cc82b1a6dd2bec32b3f1 com.github.wwmm.easyeffects
# to prevent updates, back to the affected 8.0.0, mask the flatpak
flatpak mask com.github.wwmm.easyeffects
- Although pipewire in this case is much older and remained unchanged: jammy (22.04LTS 0.3.48-1ubuntu1: amd64)
On Zorin 17 the issue is exactly its pipewire release being too old. The opposite of what happened in the OpenSUSE distribution that used a release candidate for the next pipewire version.
Also confirm Zorin OS 17.3 I got it to eventually keep the default audio device in my case focusrite Solo 4th Easy effects loads the presets and I can get the spectrum equalizer to show as if its playing, it responds to whats playing I just dont hear it It did the update without me seeing it. One minute I had audio then I didn`t. To be fair though the update looks lovely I'll roll back in the meantime
On Zorin 17 the issue is exactly its pipewire release being too old. The opposite of what happened in the OpenSUSE distribution that used a release candidate for the next pipewire version.
Exactly. Unfortunately an upgrade for existing installations of Zorin OS 17 to Zorin OS 18 (based on Ubuntu 24.04 LTS) is not available yet. Only a fresh (re-)install.
Personally, I think it is too much work to support old and bleeding edge releases of pipewire simultaneously, due to the fast pace of its development. I am fine sticking to EE 7 - and hope EE will still support Ubuntu 24.04, thus also Zorin OS 18.
While also using other Linux distros, focussing on Zorin OS enables me to successfully transition friends and family to a Linux distro normal user love. The better I know it and the smoother the overall migration experience - the less trouble for everyone. :-)
Thank you once again for all the time and work you invest into EE, it is highly appreciated and another donation is coming soon.
and hope EE will still support Ubuntu 24.04, thus also Zorin OS 18.
Zorin 18 probably will keep working. Another Zorin user that made a fresh install has already confirmed that EasyEffects is fine there. In the end it depends more on the pipewire versions available to the different flatpak runtime and on what happens to pipewire itself than on EasyEffects.
This kind of situation will probably be less common when distributions start to put pipewire 1.x in LTS releases.. The version 0.3.48 is from a time where pipewire were still changing fast. It is inevitable things would get to a point where either we choose the current pipewire or the one from 3 years ago.
Just a quick update Working on Zorin 18, as I said earlier the update looks lovely