mjrgh / PinballY

A table browser and launcher ("front end") for virtual pinball cabinets.
Other
47 stars 22 forks source link

Volume Controls - Enhancement #40

Closed kaicherry closed 5 years ago

kaicherry commented 5 years ago

Currently we have Off (0) or on (100) globally.

The user should be able to set something in between, say 40% "System" volume.

mjrgh commented 5 years ago

That's what PinVol is for:

http://mjrnet.org/pinscape/PinVol.html

kaicherry commented 5 years ago

How does this apply to audio in pinballY, from table to table, or even source of video? How would this say, let me let the volume to 0 on everything but the sound of the video topper? This is what i meant; in PinballY it is all or nothing.

mjrgh commented 5 years ago

How does this apply to audio in pinballY

Did you look at PinVol? It controls and remembers audio levels on a per-program basis. So that's how it would apply to PinballY.

... from table to table, or even source of video

Well, it wouldn't provide that kind of granularity. I'll reopen the issue in case someone wants to take it up as a project.

kaicherry commented 5 years ago

Ok, cool. My solution for now is to run every round thing thru ffmpeg to fix it.

mjrgh commented 5 years ago

My solution for now is to run every round thing thru ffmpeg to fix it.

Yeah, that's the best bet for now.

If you have any ideas on how the UI would look, definitely post them here. My big reservation is that having such fine granularity would require an awful lot of knobs to turn.

mjrgh commented 5 years ago

Revisiting the idea of using PinVol for this, how important is it to you to be able to set different levels for the individual videos in each window, as opposed to just setting a level for each game individually? The reason I ask is that I think it would be pretty easy to enhance PinVol so that it can save a custom setting for each game selection in PinballY. In the same way it can currently remember an individual volume level for each "Visual Pinball + table file" combination, it could be aware of each "PinballY + game" combination. Right now it just treats PinballY as one big "game", but that could be changed pretty easily.

Your needs might be more elaborate than most, but it seems to me that most people will only want to have a single soundtrack for each game. That is, I don't think most people would want the DMD video AND the backglass video AND the playfield video to all have their own sounds playing concurrently; you'd just want a single recorded soundtrack for the table in most cases, I think, and you'd choose one place to put it, either the Table Audio file or the Playfield Video in most cases. For that use case, individualizing the settings in PinVol would do the trick.

(I'm actually curious what your rationale is for wanting audio playback in multiple of the videos concurrently in the first place. It seems like it would be kind of cacophonous to have them all playing their own sound effects.)

kaicherry commented 5 years ago

So it isn't playback of multiple videos; what is happening is, in PinballY, there isn't any kind of "normalization" so videos from different sources and playing a vastly different amplitudes.

So I suppose the PinVol route (didn't know about that, it's very nice...I just don't have enough buttons. Worth drilling a hole or two, it's great!) would work, you know like a Media Volume slider in "Edit Game Options..." would serve what I was thinking with a lot less complexity.

We certainly don't want that...it's PinballY :)

mjrgh commented 5 years ago

So it isn't playback of multiple videos; what is happening is, in PinballY, there isn't any kind of "normalization" so videos from different sources and playing a vastly different amplitudes.

Yeah, I get that part - that exact problem with games was the motivation for PinVol, since some VP games play really loud and some play really quietly. What I'm thinking, though, is that granularity at the game selection level (in PinballY) should be enough, right? Whatever source you're using for that game, it's going to be the same source every time that game is selected, playing at the same volume. So if you have a way to automatically set a normalization level for the game as a whole, it really doesn't matter which source that game is using; what matters is just remembering a level for that game selection. Does that make sense?

kaicherry commented 5 years ago

Yes. That should do it. I don't know of a (rational, but, humans, so) case where two videos for the same title are playing at the same time, so just adjusting for "the game" is reasonable/more of what I had in mind.

mjrgh commented 5 years ago

New feature in beta 8 lets you set a volume level for the background media for each table.

Operator Menu > Game Setup > Adjust Audio Volume

(On reflection, PinVol wasn't the right place to put this after all, because that would also change the volume for global sounds like button-press effects.)