Open Atemu opened 3 years ago
The per-app volumes aren't independent of the overall volume. Both volumes get applied. Or at least, if one of the volumes doesn't get applied, it should have nothing to do with whether or not the other gets applied.
When you change the overall volume, BGMApp changes the volume setting on your real audio device. It just copies the volume from the "Background Music" (virtual) device to your real device so they always match. The per-app volumes are applied before the audio is sent to your real device.
I think you might just have been testing it with some apps that don't work with per-app volumes. Sometimes Background Music can't figure out which apps correspond to which volumes. It's a work in progress.
The only other thing I can think of is maybe the per-app volumes don't have as much of an effect when the overall volume is really low. Do you think that could explain it? Are you able to silence any apps by turning their per-app volumes all the way down?
To make the range of the overall volume slider more useful, you could have a look at the BGMDeviceControlSync
class, which copies the overall volume from the Background Music device to the real device, and make it adjust the volume before it copies it. As a quick fix, I think you could multiply or divide it, depending on which device, in BGMAudioDevice::CopyVolumeFrom
. Or maybe it would work better to square/square root it.
You could also just try setting the volume in Audio MIDI Setup, since it gives you a really big volume slider.
I would like to be able to set a lower default per-app volume for every app simultaneously. Perhaps a modifier key could provide this functionality.
My system alerts are inaudible above most other applications, even though they are fully boosted.
On my MBP, my headphones are way too loud and I have to lower it to a notch or two above 0 for comfortable listening which is really fiddly with the touchbar controls and isn't easy to get right with a UI slider either.
I came across BackgroundMusic and it allows me to control the volume of certain apps independently of the OS but what I truly need is for it to lower the volume of all apps first and then maybe apply some per-app controls too.
Is that something that would be trivial to support? It wouldn't be something I'd have to tweak often either, so it could be hidden away in the settings somewhere or even in a config file if UI space is a concern.