wwmm / easyeffects

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

No output sources after opening the next day after installation #3190

Closed TonySSS100 closed 3 months ago

TonySSS100 commented 3 months ago

EasyEffects Version

7.1.6

What package are you using?

Flatpak (Flathub)

Distribution

Nobara (Fedora) 39

Describe the bug

The first time I installed it, it all worked fine, I specifically used it to pitch shift other programs and games with 1 semitone since I kind of have a fetish for that lol. However, the next day I opened it, I noticed it didn't detect application sources anymore and always have only two sources being Filter Chain and Virtual Input (which are both suspended but back then they were active).

image

I tried reinstalling it alongside pulseaudio but didn't solve anything sadly, is this issue perhaps related to pulseaudio/ALSA in some way?

Expected Behavior

No response

Debug Log

Debug Log
``` Paste your log here ```

Additional Information

No response

wwmm commented 3 months ago

I noticed it didn't detect application sources anymore and always have only two sources being Filter Chain and Virtual Input

Being able to see PipeWire native streams but not Pulseaudio apps is an indication that a system upgrade may have removed pipewire-pulse.

I tried reinstalling it alongside pulseaudio but didn't solve anything sadly, is this issue perhaps related to pulseaudio/ALSA in some way?

If you installed Pulseaudio PipeWire's compatibility layer for Pulse apps was removed. Although EasyEffecs does not need this compatibility layer you must give PipeWire full control over audio management.

v-fox commented 3 months ago

Maybe OP mistook the version? I've just updated to 7.1.7 and it failed to detect any app (at least strawberry and firefox), throwing whole bunch of 'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:325 spa_pod_get_array() errors. Seems like the culprit is 5f207c83ff9f4dea64dfa0e97811dccb3334f5f8 because reverting it fixed it. My PW version is 1.1.83+20~git20240621.8cd857733 Such an unfortunate time to tag a release…

wwmm commented 3 months ago

Maybe OP mistook the version? I've just updated to 7.1.7 and it failed to detect any app (at least strawberry and firefox), throwing whole bunch of 'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:325 spa_pod_get_array() errors. Seems like the culprit is 5f207c8 because reverting it fixed it. My PW version is 1.1.83+20~git20240621.8cd857733 Such an unfortunate time to tag a release…

Probably not. There was no flatpak release with that patch 4 days ago. And the errors you are seeing about spa_pod_get_array have always been related to something weird happening in PipeWire and not EasyEffects. I haven't seen them on my computer in years.

The purpose of that patch is avoiding EasyEffects breaking custom routing it should really not be breaking by default #3188. Unless the player/recorder has received from the user a custom value for PW_KEY_TARGET_OBJECT that patch should be doing nothing bad. Did you set a custom device in the players configuration? At least here on my computer Firefox is still working fine.

v-fox commented 3 months ago

Did you set a custom device in the players configuration? At least here on my computer Firefox is still working fine.

If you mean manually selecting output device in player or FF, then not. FF doesn't even have such option. When the broken build of EE was just starting during FF or player playing, I saw and heard it work for less than a second but then apps would just bypass EE completely, as if it's not started. I forgot to check pw-top but I assume that it would show EE nodes to be unused and inactive.

Also note that I have 2 separate output DACs selectable, one for headphones and one for speakers, which I manually switch in pasystray. Both of them use USB and are set to IEC958 digital profile while input is from built-in Realtek chip on analogue input-only profile. Maybe all that gets it confused somehow.

Also, past few weeks I started having random issue of sound being muted until I pause & unpause a sound source. Similar to the old-standing issue of randomly losing output on right channel until pause & unpause in a different sound source (like: losing channel in video player or browser, start and stop a song in audio player, then return). EE often gets broken by inter-release changes in PW, so I always try to use newest snapshots for both and revert if something breaks. Here reverting PW did not help but reverting this commit in EE did.

wwmm commented 3 months ago

Did you set a custom device in the players configuration? At least here on my computer Firefox is still working fine.

If you mean manually selecting output device in player or FF, then not. FF doesn't even have such option. When the broken build of EE was just starting during FF or player playing, I saw and heard it work for less than a second but then apps would just bypass EE completely, as if it's not started. I forgot to check pw-top but I assume that it would show EE nodes to be unused and inactive.

Also note that I have 2 separate output DACs selectable, one for headphones and one for speakers, which I manually switch in pasystray. Both of them use USB and are set to IEC958 digital profile while input is from built-in Realtek chip on analogue input-only profile. Maybe all that gets it confused somehow.

Also, past few weeks I started having random issue of sound being muted until I pause & unpause a sound source. Similar to the old-standing issue of randomly losing output on right channel until pause & unpause in a different sound source (like: losing channel in video player or browser, start and stop a song in audio player, then return). EE often gets broken by inter-release changes in PW, so I always try to use newest snapshots for both and revert if something breaks. Here reverting PW did not help but reverting this commit in EE did.

Hum... A new issue should probably be open for that. But I still do not see how that patch could be affecting a player that does not set a custom target. When this target is undefined the extra code is totally ignored https://github.com/wwmm/easyeffects/blob/c1b678a11846aa6eb9a3392a5332e8c1c5dab713/src/pipe_manager.cpp#L342

wwmm commented 3 months ago

EE often gets broken by inter-release changes in PW, so I always try to use newest snapshots for both and revert if something breaks.

I am using the stable PipeWire release 1.0.7. I wonder if this is the reason why there is no issue here. Maybe the version in development changed how PW_KEY_TARGET_OBJECT is handled.

wwmm commented 3 months ago

@v-fox does the last commit in the master branch makes any difference?

v-fox commented 3 months ago

I am using the stable PipeWire release 1.0.7. I wonder if this is the reason why there is no issue here. Maybe the version in development changed how PW_KEY_TARGET_OBJECT is handled.

Probably. There seem to be quite a few core changes in every aspect in every release.

@v-fox does the last commit in the master branch makes any difference?

Nope. Still broken, had to revert both.

wwmm commented 3 months ago

Nope. Still broken, had to revert both.

Do you see the same problem in the input effects pipeline? The same logic was applied there a few months ago.

v-fox commented 3 months ago

Do you see the same problem in the input effects pipeline? The same logic was applied there a few months ago.

pavumeter and kwave using PA interface seem to be detected as recording apps.

wwmm commented 3 months ago

Do you see the same problem in the input effects pipeline? The same logic was applied there a few months ago.

pavumeter and kwave using PA interface seem to be detected as recording apps.

Hum... This makes the whole thing weirder. Both pipelines should be broken. I wonder if wireplumber is doing some unexpected configuration for PW_KEY_TARGET_OBJECT under the hoods...

TonySSS100 commented 3 months ago

I managed to fix it by uninstalling pulseaudio and installing pipewire-pulseaudio in fedora package manager, after rebooting I got both sinks back and therefore EasyEffects finally recognizes programs again.