Open jinwk00 opened 3 years ago
Kill the current instance easyeffects -q
and restart it in debug mode G_MESSAGES_DEBUG=easyeffects easyeffects
.
There are audio applications that ask the server to not allow third party apps to move their stream to another device. If this is the case in this java pp all you can do is trying to manually force it to use our virtual device.
I can confirm that Minecraft audio is not get into EasyEffects even in EasyEffecys "java" is toggle button is enable
But I can manual connect output of "Java" to "EasyEffects Sink" and it working
It look like "Toggle Button" does nothing for "Minecraft Java"
PS. I'm using Manjaro with latest update
Since Minecraft audio system is not good as far as I know. It can not change "Audio Output" on the fly. It need to restart the game or "Reload Game" by F3+T But Minecraft is used to work with PulseEffects
@tackleza based on your logs I think that somewhere along the way Java set the flag PA_STREAM_DONT_MOVE
. This flag asks the server to not allow third party programs to move the stream to another device. Although most apps should not be setting that flag even famous ones like Firefox do this... Recently PipeWire even had to add rules to ignore this Firefox request.
The reason why Carla is being able to move is that it is using a lower level API to connect the ports instead of using PipeWire's session manager. We use this lower level API too but to link our filters. For moving the streams to our virtual devices we use the session manager because manually handling links has some disadvantages. I only link our filters manually because PipeWire's session manager does not handle filters yet.
I suggest you take this Java problem to the PipeWire's developers. Considering the amount of apps doing bad use of this Pulseaudio flag the users should have a way to set a list of apps forbidden to use it.
Minecraft using libraries provided by Mojang, so you may want to override openal to the system one.
Use the following java argument: -Dorg.lwjgl.openal.libname=/usr/lib/libopenal.so
or any of the custom launchers which have libraries override option.
After that effects should work, also you will see all of your output devices in game's audio settings
Just found out that the latest openal may be incompatible with some mods: for an example "sound physics remastered" only works on older versions of openal which has no pipewire support.
So here's a better solution.
That old openal version has no pipewire support and uses jack by default, so you can force it to use pulse for an example like this: ALSOFT_DRIVERS=pulse
I didn't tested other backends, but pulse works fine for me
So I am trying to play Minecraft on my Arch Linux environment (Garuda Linux), and I try enabling Java, but there is no audio change. It just plays whatever the original audio is.
EasyEffects is running 6.0.3-1, Pipewire is on 1:0.3.31-1.
I am terrible at log collection, so if anyone can tell me how I can log myself what the error or the issue is, much appreciated. Will give as much information as needed.
PS: Java is AdoptopenJDK JRE 8 LTS.