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

EasyEffects not working with plexamp #3122

Open
jis26 opened this issue May 3, 2024 · 31 comments
Open

EasyEffects not working with plexamp #3122

jis26 opened this issue May 3, 2024 · 31 comments

Comments

@jis26
Copy link

jis26 commented May 3, 2024

EasyEffects Version

7.1.6

What package are you using?

Flatpak (Flathub)

Distribution

Raspberry pi OS Bookworm

Describe the bug

I recently installed rpios64bit Bookworm on an rpi5 on which I also installed plexamp via this script:
https://howtohifi.com/how-to-create-a-headless-plexamp-player-using-odinbs-plexamp-installer-script/

The installation went very well, everything works. However I also installed Easyeffects in order to equalize my speakers.
The problem is that when I launch music via the "plexamp" application on Android to plexamp on the Rpi, easyeffects does not work whether via the HDMI output or HAT i2s ES9038Q2M.
On the other hand, when I play music via the Raspberry itself via Chromium http:x.x.x.x:32500, or a YouTube video for example, easyeffects works (the bars at the top of the window move) and equalization can be carried out.

Additionally, I also get this message when I open the preferences: EasyEffects not asking for background permission/flatpak permission-reset com.github.wwmm.easyeffects so it can ask again, but running that command doesn't change anything.

Expected Behavior

Activate Easyeffects for Hi-fi listening on Raspberry through Plexamp

Debug Log

Debug Log
Paste your log here

Additional Information

No response

@violetmage
Copy link
Contributor

violetmage commented May 3, 2024

When playing audio via plexamp, does easyeffects show it in the players list?

After reading through that guide, it sounds like plexamp will not be running from your user account. If this is the case, then it makes sense that plexamp does not show up in easyeffects, as easyeffects operates entirely within the current users' environment.

Using top / htop / system monitor, can you find a plexamp process and see what user it's running under?

@jis26
Copy link
Author

jis26 commented May 3, 2024

Good evening,
first of all, thank you for answering me, and sorry for my bad English because I am French.

No exactly, whether headless or via Chromium... On the other hand, if I launch YouTube in Chromium or Firefox, the Easyeffects displays the players correctly and the specter reacts.

Yes I think you are right, that's what I assumed too, I think plexamp is "installed" alongside the system or not running as a standard application.
I turn on my Rpi and I immediately look for the process and I tell you.

Thanks again

EDIT : I have a lot of "plexamp/js/index.js" processes which are obviously running on the user "pi" as shown in the screenshots I just took.
plexamp
plexamp1
plexamp2

@violetmage
Copy link
Contributor

What does the comand pw-top show while plexamp is running?

@jis26
Copy link
Author

jis26 commented May 3, 2024

What does the comand pw-top show while plexamp is running?

Plexamp is configured for this launched when starting rpiOS as well as a Chromium window http://x.x.x.x:32500 in order to have the current reading displayed on the TV (rpi connected in HDMI for the image and DAC hat ES9038Q2M in analog to my AVM60 preamp on a passtrought input).

Here is the capture of pw-top.
plexamp3

@violetmage
Copy link
Contributor

Okay, so the reason plexamp doesn't show up in easyeffects is because somehow it's audio is not even going through your users pipewire graph, which I don't really understand but is evidently possible.

What happens if you try to play audio from another program while plexamp is also playing music?

@jis26
Copy link
Author

jis26 commented May 3, 2024

Yes, that's what I assumed when I said earlier "that plexamp must be installed alongside, that it is not like a standard application" in the eyes of the system and that's also why on my PC running Linux Mint it works because Plex client or plexamp is in the official repository so surely well integrated.
But what solution to integrate it in order to be able to equalize with a parametric EQ?

So, the audio output of my Rpi is set to "Dac I2s ES9038Q2M" (in the volume applet at the top right of the desktop via a right click).

When I play music on Plexamp and then I play music at the same time on YouTube, it's the Plexamp music that plays.
If I adjust the audio output of the Rpi to HDMI (always via right click on the applet) the Plexamp music still plays, but the YouTube video loads without this launch. Afterwards, on the side of my AVM60 preamp, the parameters of the input where the Rpi is connected are set for video-->HDMI2 and sound-->ANALOG 1.

@violetmage
Copy link
Contributor

Okay, some more research shows that the guide you followed has plexamp configured to output audio directly into ALSA, which is why it still works but doesn't show up in pipewire.

What options are there in plexamp's interface for audio output?

Also, I found this page that describes the settings in plexamp, it mentions that plexamp has a simple built in EQ. Maybe that can do what you need if you are in a hurry.

@jis26
Copy link
Author

jis26 commented May 3, 2024

Thank you again for the time you devoted to my problem.

Here are the outputs I have in the Plexamp settings (see screenshot).
Screenshot_20240503234423

Okay, that's what I assumed, now at least it's clear.
Is it possible to pass it or integrate it with Pipewire ?

No, I'm not in a hurry, but I would like to succeed in equalizing Plexamp because its interface is excellent compared to everything I have tried, the only thing missing is the parametric EQ. I know that Plexamp offers a graphic EQ, but it is low-end, I need to be able to adjust the gain, the Q and that at the exact Hz.

@violetmage
Copy link
Contributor

violetmage commented May 3, 2024

Okay, this looks promising.

Does plexamp become visible in easyeffects if you set plexamp to output to "Open Sound System"?

If that doesn't work, try setting plexamp to "Pulseaudio Sound Server" as well.

@jis26
Copy link
Author

jis26 commented May 3, 2024

Okay, I'll try and get back to you.
I restart the Rpi between each change, right?
I don't know if pulseaudio is installed? It's not Pipewire on Rpi bookworm, then I know that in "rasp-config" I can choose between Pipewire and pulseaudio from memory.

@wwmm
Copy link
Owner

wwmm commented May 3, 2024

If that doesn't work, try setting plexamp to "Pulseaudio Sound Server" as well.

This should make it work. The problem of making it play directly to ALSA is that depending on how it is done nothing else will be able to play sound at the same time. And as observed EasyEffects can not process apps that do not play audio through PipeWire.

As PipeWire has a compatibility layer for Pulseaudio clients special integration for PipeWire is not needed. The app just has to use some kind of Pulseaudio backend.

@violetmage
Copy link
Contributor

@wwmm The "Open Sound Server" entry is pipewire, if I understand correctly. Wouldn't that be preferred in this case?

@wwmm
Copy link
Owner

wwmm commented May 3, 2024

@wwmm The "Open Sound Server" entry is pipewire, if I understand correctly. Wouldn't that be preferred in this case?

Hum... The first thing that came to my mind was the old OSS system that used to be an alternative to ALSA. If it is a PipeWire backend it should also work.

@jis26
Copy link
Author

jis26 commented May 3, 2024

Ok, ça a l'air prometteur.

Est-ce que plexamp devient visible dans easyeffects si vous définissez plexamp sur "Open Sound System"?

Si cela ne fonctionne pas, essayez également de définir plexamp sur "Pulseaudio Sound Server.

So, I tried, with Pulseaudio Sound Server, playback starts but closes just as soon, the same with Open Sound System 😭

@violetmage
Copy link
Contributor

What does pw-top look like when you set Plexamp to "Pulseaudio Sound Server"?

@jis26
Copy link
Author

jis26 commented May 3, 2024

The problem of making it play directly to ALSA is that depending on how it is done nothing else will be able to play sound at the same time.

This doesn't bother me, I ONLY use my Rpi for music via Plexamp.

@jis26
Copy link
Author

jis26 commented May 3, 2024

What does pw-top look like when you set Plexamp to "Pulseaudio Sound Server"?

Here is the result (plexamp is launched but no music plays because with Pulseaudio Sound Server it stops immediately)
plexamp4

@jis26
Copy link
Author

jis26 commented May 3, 2024

@wwmm The "Open Sound Server" entry is pipewire, if I understand correctly. Wouldn't that be preferred in this case?

Hum... The first thing that came to my mind was the old OSS system that used to be an alternative to ALSA. If it is a PipeWire backend it should also work.

Do you think installing OSS would solve my problem?

@wwmm
Copy link
Owner

wwmm commented May 4, 2024

Do you think installing OSS would solve my problem?

Definitely not. First because the chances of OSS having drivers for modern hardware is very low. Second because EasyEffects only works with PipeWire. And PipeWire probably is only tested with ALSA and not OSS. It may not even support OSS.

The right step to do is making plexamp working with Pulseaudio while EasyEffects is not running. Only after this is working it is worth to start tests with EasyEffects in the middle. Nowadays all Linux audio players should work with Pulseaudio. Players working only on ALSA was a thing 20 years ago. Not now.

@wwmm
Copy link
Owner

wwmm commented May 4, 2024

Make sure you have all the necessary PipeWire packages. The compatibility layer for Pulseaudio is often packaged in package named like pipewire-pulse. Check if it is installed.

@wwmm
Copy link
Owner

wwmm commented May 4, 2024

The right step to do is making plexamp working with Pulseaudio

By this I meant the compatibility layer provided by PipeWire and not installing the Pulseaudio server.

@jis26
Copy link
Author

jis26 commented May 4, 2024

Do you think installing OSS would solve my problem?

Definitely not. First because the chances of OSS having drivers for modern hardware is very low. Second because EasyEffects only works with PipeWire. And PipeWire probably is only tested with ALSA and not OSS. It may not even support OSS.

The right step to do is making plexamp working with Pulseaudio while EasyEffects is not running. Only after this is working it is worth to start tests with EasyEffects in the middle. Nowadays all Linux audio players should work with Pulseaudio. Players working only on ALSA was a thing 20 years ago. Not now.

Hello, sorry for the delay, with the time difference in France it was night.

Okay, I understand better now, it's clearer to me. Let's go step by step. So I need to make Plexamp work with pulseaudio which is pipewire compatible if I understand correctly.

A question I ask myself, if we can get Plexamp to work with Pulseaudio which is pipewire compatible, does this mean that my DAC hat ES9038Q2M will be bypassed or the conversion will still be done on the DAC?

I therefore performed the "pipewire-pulse" command in a terminal to check its status and here is the result (screenshot).
Then I typed "pipewire-pulse" into the package manager and it looks fine installed. I then tried a "sudo apt install pipewire-pulse" which told me that it was installed and that I had the latest version available.
pipewire-pulse1
pipewire-pulse

ÉDIT:But if I have to use pulseaudio instead of pipewire it doesn't bother me because even if easyeffects is not compatible, there is always Pulseeffects which is the same thing as Easyeffects but for Pulseaudio.
Afterwards it's true that it would be a shame to downgrade the audio manager but hey... If it's the only solution I'm not closed or even if I have to use another system than rpiOS it doesn't bother me, for the moment where I can use Plexamp or Plex client with a parametric EQ it doesn't bother me.

@wwmm
Copy link
Owner

wwmm commented May 4, 2024

I therefore performed the "pipewire-pulse" command in a terminal to check its status and here is the result (screenshot).

It does the same on my computer because the service is already running. So is Plexamp visible in pw-top output now?

@jis26
Copy link
Author

jis26 commented May 4, 2024

I therefore performed the "pipewire-pulse" command in a terminal to check its status and here is the result (screenshot).

It does the same on my computer because the service is already running. So is Plexamp visible in pw-top output now?

Hello,
no unfortunately , the
pw-top still displays the same thing as the screenshot in my previous post.
At the same time I haven't changed anything, Plexamp still has my i-sabre i2s DAC selected as well as in the rpiOS settings.. I haven't installed anything more or less since yesterday so it seems normal to me that pw -top has not changed..

@jis26
Copy link
Author

jis26 commented May 5, 2024

Do you think installing OSS would solve my problem?

Definitely not. First because the chances of OSS having drivers for modern hardware is very low. Second because EasyEffects only works with PipeWire. And PipeWire probably is only tested with ALSA and not OSS. It may not even support OSS.

The right step to do is making plexamp working with Pulseaudio while EasyEffects is not running. Only after this is working it is worth to start tests with EasyEffects in the middle. Nowadays all Linux audio players should work with Pulseaudio. Players working only on ALSA was a thing 20 years ago. Not now.

This link (last point of "requirements and prep ...) https://gist.github.com/tgp-2/fc34c5389bc3e4ef332e28d9430b0ebf would not be a good starting point in order to pass the audio from Plexamp through Pulseaudio or pipewire as you mentioned, which is the cause why Easyeffects does not see Plexamp when it plays music?

"if all else fails and a usable ALSA interface is not available (Bluetooth audio, for example), or if you prefer to use your Pi with a monitor, desktop environment, and the default Pulseaudio (or PipeWire?) sound server, you will need to switch to a systemd --user service after Plexamp install completes (the default system service cannot be used to access Pulseaudio) ... this requires some manual file edits described here
https://forums.plex.tv/t/plexamp-headless-on-a-rpi-3b-no-audio-out-over-hdmi/826971/4?u=tgp-2
"

@wwmm
Copy link
Owner

wwmm commented May 5, 2024

Do you think installing OSS would solve my problem?

Definitely not. First because the chances of OSS having drivers for modern hardware is very low. Second because EasyEffects only works with PipeWire. And PipeWire probably is only tested with ALSA and not OSS. It may not even support OSS.
The right step to do is making plexamp working with Pulseaudio while EasyEffects is not running. Only after this is working it is worth to start tests with EasyEffects in the middle. Nowadays all Linux audio players should work with Pulseaudio. Players working only on ALSA was a thing 20 years ago. Not now.

This link (last point of "requirements and prep ...) https://gist.github.com/tgp-2/fc34c5389bc3e4ef332e28d9430b0ebf would not be a good starting point in order to pass the audio from Plexamp through Pulseaudio or pipewire as you mentioned, which is the cause why Easyeffects does not see Plexamp when it plays music?

"if all else fails and a usable ALSA interface is not available (Bluetooth audio, for example), or if you prefer to use your Pi with a monitor, desktop environment, and the default Pulseaudio (or PipeWire?) sound server, you will need to switch to a systemd --user service after Plexamp install completes (the default system service cannot be used to access Pulseaudio) ... this requires some manual file edits described here https://forums.plex.tv/t/plexamp-headless-on-a-rpi-3b-no-audio-out-over-hdmi/826971/4?u=tgp-2 "

In your current configuration Plexamp is probably starting before the sound server starts. This explains why pipewire can not see it. The configuration they suggested for an "user" service will make sure it waits for the server. You will have to do it.

@jis26
Copy link
Author

jis26 commented May 5, 2024

Do you think installing OSS would solve my problem?

Definitely not. First because the chances of OSS having drivers for modern hardware is very low. Second because EasyEffects only works with PipeWire. And PipeWire probably is only tested with ALSA and not OSS. It may not even support OSS.
The right step to do is making plexamp working with Pulseaudio while EasyEffects is not running. Only after this is working it is worth to start tests with EasyEffects in the middle. Nowadays all Linux audio players should work with Pulseaudio. Players working only on ALSA was a thing 20 years ago. Not now.

This link (last point of "requirements and prep ...) https://gist.github.com/tgp-2/fc34c5389bc3e4ef332e28d9430b0ebf would not be a good starting point in order to pass the audio from Plexamp through Pulseaudio or pipewire as you mentioned, which is the cause why Easyeffects does not see Plexamp when it plays music?
"if all else fails and a usable ALSA interface is not available (Bluetooth audio, for example), or if you prefer to use your Pi with a monitor, desktop environment, and the default Pulseaudio (or PipeWire?) sound server, you will need to switch to a systemd --user service after Plexamp install completes (the default system service cannot be used to access Pulseaudio) ... this requires some manual file edits described here https://forums.plex.tv/t/plexamp-headless-on-a-rpi-3b-no-audio-out-over-hdmi/826971/4?u=tgp-2 "

In your current configuration Plexamp is probably starting before the sound server starts. This explains why pipewire can not see it. The configuration they suggested for an "user" service will make sure it waits for the server. You will have to do it.

Okay, so I can follow and complete this tutorial!?? Sorry sometimes the translator is not great for understanding 🤭

@wwmm
Copy link
Owner

wwmm commented May 5, 2024

Okay, so I can follow and complete this tutorial!?? Sorry sometimes the translator is not great for understanding 🤭

You probably will have to follow that tutorial and change the way you start plexamp to the way they explain there.

@jis26
Copy link
Author

jis26 commented May 6, 2024

Okay, so I can follow and complete this tutorial!?? Sorry sometimes the translator is not great for understanding 🤭

You probably will have to follow that tutorial and change the way you start plexamp to the way they explain there.

Okay thank you very much I will try and come back to you to tell you what it is 😊

@jis26
Copy link
Author

jis26 commented May 7, 2024

Hello,
as agreed I followed the tutorial mentioned previously, everything went well, but unfortunately Plexamp is still not visible in Easyeffects when playing music via the "Plexamp Android" application to "Plexamp Raspberry" .
On the other hand, if I open Chromium in the Raspberry and I connect to the Plex server (which is on my synology nas IP 192.168.1.100) via 192.168.1.100:32500, Easyeffects works.
But this solution is not suitable because I want to use the Plex Android application to broadcast to the Raspberry 😔

@wwmm
Copy link
Owner

wwmm commented May 7, 2024

On the other hand, if I open Chromium in the Raspberry and I connect to the Plex server (which is on my synology nas IP 192.168.1.100) via 192.168.1.100:32500, Easyeffects works.

Only if you access the server IP from a browser in the RPI or it also works when the browser is on another machine?

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