#anyone figured out the volume issue with firefox?

41 messages · Page 1 of 1 (latest)

ionic rune
#

the volume control works, but anytime i pause/switch video, the volume of the app resets to 100%, resulting in me getting jumpscared. i saw other people got it and fixed it by switching browser, but firefox is my favourite for youtube. i'm on fedora 40 if that's relevant.

azure dove
#

I'm still having that problem but haven't investigated any further. I'd really like to switch back to Firefox but I think it's an inherent issue with Firefox. Hopefully someone else has figured it out?

cerulean sand
#

messed with this one and found a fix that works for me

#

If you want Firefox to use ALSA type

about:config

into Firefox's search bar. It warns you this can bork Firefox. Proceed anyway. Now add an entry

media.cubeb.backend

and set the type to 'string'. Now give it the value

alsa

#

then change your config to use alsa_playback.firefox instead of firefox

#

fwiw im using pipewire-alsa ofc

#

this also makes it so that the youtube volume controls are independent from deej's volume which is a bonus for me

cerulean sand
amber knoll
#

Thanks @cerulean sand for the suggestion. The volume jumps are gone now, but the audio is crackling heavily. Any idea where to fix that? Maybe the sampling rate doesn't fit to my device

cerulean sand
#

Not sure about that one, seems like something with the sample rate yeah

amber knoll
#

Nevermind, after a reboot it works flawlessly 🙂

upper holly
cerulean sand
#

by config i meant your deej config

upper holly
#

oh, gotcha

cerulean sand
#

changing to alsa makes it use a different process name for deej

#

ig

upper holly
#

ok so i tried switching the config in firefox and deej and it didnt work, before i changed the deej config, it still worked but the problem persisted

cerulean sand
#

@upper holly means you didn't do the about:config part correctly

upper holly
#

Alright, when I get home tonight I'll try again

ionic rune
cerulean sand
#

yeah not sure if that part is specific to my setup somehow but glad it worked

ionic rune
#

not sure why but the issue is back for me despite doing your whole fix @cerulean sand 🥲. only difference is i didn't change firefox to alsa_playback.firefox in deej config (as that didn't let me control the volume of firefox at all anymore) i did have to install pipewire alsa on the fly for your fix so maybe i screwed that up?

cerulean sand
#

if anybody is still having the issue i switched to fedora and started having the issue even with alsa set, but setting the same key in about:config to "oss" instead of "alsa" worked instead

nimble carbon
#

This ones still an issue for me. Has anyone found any other solutions for this issue?

azure dove
#

Yeah, either I'm following the instructions incorrectly or it doesn't work for me too

cerulean sand
#

still works for me on zen browser, not sure what the issue would be

azure dove
#

tried this on Fedora with pipewire fix, firefox, zen and other firefox based broswers. Still nothing 😦
Not sure what's wrong

nimble carbon
#

I ended up grabbing the source from https://github.com/peeteer1245/deej-pipewire-fix
that "c" mentioned and made some slight modifications to it. Created a virtual output named "Media Sink" and modified session_map.go and session_linux.go, when I compiled it I got a version that can control the media sink virtual device with the setting map of media-source.
Forgive my TERRIBLE naming consistency. I was half asleep and a little inebriated. lol

But with that! I can control the volume of that virtual output separately. And then I told Firefox to always use that as it's output.

THE BIGGEST ISSUE!!! Is that for whatever reason, the code doesn't actually show the volume change in the UI? No clue why. And since it works and I have other things to work on I couldn't care less. Buut!! It worked for me. So if anyone else wants a go at either fixing it. Or with just using what I did I'll attached the modified versions of those files here. Just overwrite them in ./deej-pipewire-fix/pkg/deej/

Good luck!

GitHub

Set app volumes with real sliders! deej is an Arduino & Go project to let you build your own hardware mixer for Windows and Linux - peeteer1245/deej-pipewire-fix

#

nano ~/.config/pipewire/pipewire.conf.d/20-media-sink.conf

context.modules = [
    {
        name = libpipewire-module-loopback
        args = {
                audio.position = [ FL FR ]
                node.description = "Media Loopback"
            capture.props = {
                node.name         = "media-sink"
                node.description  = "Media Sink"
                media.class       = "Audio/Sink"
                node.passive      = true
            }
            playback.props = {
                node.name         = "media-source"
                node.description  = "Media Source"
                node.passive      = true
            }
        }
    }
]
#

Theoretically you could do this as many times as you want just giving them a different node.name and it SHOULD be able to recognize it. The program does spit out the list of nodes it can see to terminal now so you should be able to see the names of them and add them to the config.

I haven't tested it though. But I feel like it's on the right track to add full per device level functionality to linux if someone with more patience and time than me wants to tidy it up and work on it. Cheers!

cerulean sand
#

i don't recommend my old fix anymore anyways, on the new discord canary update with wayland screenshare it breaks audio sharing for some reason

#

sadly just using chrome now lol

weak rampart
cerulean sand
#

im using zen now but i kinda just deal with the issue sadly

#

bc alternate audio backends don't work with discord screenshare unless i use vesktop

weak rampart
#

yeah i was gonna recommend vesktop as well lol

#

thanks

gritty loom
#

does this fix still work with this fork?

#

i hav't gotten it to work. i also tryed to install the Pipwire fix fork but i get the same error as the main release version

#

Building deej (release)...
Embedding build-time parameters:

  • gitCommit e92a227
  • versionTag e92a227
  • buildType release

github.com/getlantern/systray

[pkg-config --cflags -- gtk+-3.0 webkit2gtk-4.0 appindicator3-0.1]

Package webkit2gtk-4.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `webkit2gtk-4.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'webkit2gtk-4.0', required by 'virtual:world', not found
Package 'appindicator3-0.1', required by 'virtual:world', not found
Error: "go build" exited with a non-zero code. Are you running this script from the root deej directory?