jmshrv / finamp

A Jellyfin music client for mobile
Mozilla Public License 2.0
1.91k stars 125 forks source link

[Feature Request] Finamp-specific volume control #500

Open Venryx opened 1 year ago

Venryx commented 1 year ago

The songs in my library are apparently quite loud; to match the volume level I want, I need to put my system volume at ~5%.

This is a problem, because it means that then I cannot hear other apps with audio -- such as Google Maps for navigation, which I want to be able to hear alongside my music.

The solution would seem to be to add a volume control within Finamp's player specifically. Then I can reduce its volume enough that the system-level Media volume gives a good result for Finamp and Google Maps at the same time.


By the way, I notice there's a feature request for Replay Gain support: https://github.com/jmshrv/finamp/issues/468

That's good of course, but a volume control would still be needed to control the relative volume between Finamp and Google Maps. (or other use-cases, eg. android builds where it only provides ~10 system-level "volume ticks")

Chaphasilor commented 1 year ago

Would you want to adjust this volume frequently or could it be somewhere in the settings? 🤔

Venryx commented 1 year ago

For my particular use-case, having it in the settings would be "tolerable" -- although it does seem like something useful enough to be worth adding a little button for it. (eg. click the button, and it shows a vertical slider above it for volume)

Chaphasilor commented 1 year ago

I'm thinking about adding this as part of adding volume normalization (#468). Basically, when enabling volume normalization, you could set a "target volume" which all tracks should have (on average)

Venryx commented 1 year ago

I'm thinking about adding this as part of adding volume normalization (#468). Basically, when enabling volume normalization, you could set a "target volume" which all tracks should have (on average)

That would be very nice indeed! Especially in contexts where ui interaction is difficult (eg. while driving), since it would (at least mostly) remove the need to change volumes for tracks.

Chaphasilor commented 1 year ago

Sweet. Also, another question: You mentioned that you can't hear Google Maps announcements while Finamp is playing. Are both apps running on the same device? Finamp should "duck" the volume if navigation apps are playing audio, if that's not working we could probably fix this in an even better way.

Venryx commented 1 year ago

Sweet. Also, another question: You mentioned that you can't hear Google Maps announcements while Finamp is playing. Are both apps running on the same device? Finamp should "duck" the volume if navigation apps are playing audio, if that's not working we could probably fix this in an even better way.

Well the problem is that my music tracks are just too loud, so that I have to set the overall system volume at almost the lowest setting; so even though Finamp "ducks" the volume when Google Maps speaks, the system volume is so low that it still makes the Google Maps voice uncomfortably quiet.

I know I could fix this by pre-processing the tracks to be quieter, but it would be really nice to not have to do that. (which is why your suggestion above about a volume normalization feature sounds good to me -- and is sufficient for my use-case in leiu of a realtime volume control)

Chaphasilor commented 1 year ago

Ah okay. But can you confirm that Finamp actually ducks, if your volume is high enough?

Venryx commented 1 year ago

Ah okay. But can you confirm that Finamp actually ducks, if your volume is high enough?

Yes, confirmed; Finamp does quiet itself when the Google Maps voice speaks.

Chaphasilor commented 12 months ago

So audio normalization is working for me on Android already, and I've already added a setting that lets you adjust the target loudness. It's not perfect yet, but it should mostly work :)
I could also easily add separate volume control, I'm just not sure where 😅

Venryx commented 12 months ago

So audio normalization is working for me on Android already, and I've already added a setting that lets you adjust the target loudness. It's not perfect yet, but it should mostly work :) I could also easily add separate volume control, I'm just not sure where 😅

Awesome!

As for placement of a volume control, could it not just be an icon-button next to the existing "heart" button at bottom-center?

Like this:

Except with the heart-icon shifted to the left of course, to keep the heart and volume icons centered on-screen.

(If that's considered too ugly/out of place, then idk where; UI in general is fairly subjective, though that placement seems fine to me.)

Chaphasilor commented 11 months ago

Yeah, something like that might work. The button will have to be integrated into the redesign (#220), and there is a plan to prepare for controlling different media devices (e.g. speakers that you're casting to, once that is implemented). So ideally the volume panel would just have most of the interactions and UI elements needed for supporting more advanced volume control for different devices in the future.
If I get around to designing some more mockups I might take a look at this problem :)

felix920506 commented 11 months ago

Hi, I would also like to see this feature. Listening to my music library on my tablet (iPad Pro 2021) with my headphones, I would need to have the volume at the lowest step above 0 in order to not be deafened