Wouldn't it be easier to set the sound volume using a positive percentage value?

0 favourites
From the Asset Store
809 energetic male voice announcer phrases for casual & mobile games, such as puzzles, match, quest, casino, sports etc.

    Many people do not have technical knowledge of sound and are used to setting the sound volume using a percentage value (0% to 100%), so they find it weird and confusing to set the sound volume using a negative value (dB),

    Therefore, I think it would be more intuitive and friendly if the sound volume could be set using a positive percentage value where 0% is equivalent to the minimum volume (silence), and 100% is equivalent to the maximum volume.

    Obviously, this is a suggestion to make Construct 3 even easier to use for everyone.

    Greetings.

    Yeah. But they seem pretty adamant at using db for volume. Fun fact, the underlying sound apis set volume with a percentage.

    Anyways you can just convert the percentage to decibels with a simple formula.

    construct.net/en/forum/construct-3/how-do-i-8/user-change-volume-percentage-162705

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads

    Yeah. But they seem pretty adamant at using db for volume.

    I don't know the why.

    Anyways you can just convert the percentage to decibels with a simple formula.

    https://www.construct.net/en/forum/construct-3/how-do-i-8/user-change-volume-percentage-162705?kws=Volume%2bpercent%2bdb

    Thanks.

    If you find older topics about it the dev explained his reasoning a few times.

    As I recall he was into audio processing in university so he prefers decibels. And he says volume isn’t linear so 50% doesn’t sound half as loud so decibels are better.

    But probably best to look up what he said exactly.

    But I prefer setting volume from 0-100 instead of -infinity to 0 so the conversion formula is helpful for me.

    (Sorry for deleting my last message several times, but I can't find the option to edit it, so I had to delete it and create it again.)

    If you find older topics about it the dev explained his reasoning a few times.

    Yes, I have read them now.

    ...And he says volume isn’t linear so 50% doesn’t sound half as loud so decibels are better.

    I think this would not be a problem, since the description of the action to set the sound volume using a percentage could warn that "a formula is applied to provide a perceptual result."

    But I prefer setting volume from 0-100 instead of -infinity to 0 so the conversion formula is helpful for me.

    Me too, without a doubt, because I need to use Construct 3 as a practical and intuitive game engine, and not as an accurate sound editor.

    And what if both options were available?

    We would really like to see in Construct something like this:

    I think dB is a better unit for volume because it better matches how human hearing works, as the human perception of volume is not linear.

    For example -10 dB sounds about half as loud (note that perceived volume is different to the actual sound power), -20 dB sounds about the same amount less loud, -30 dB sounds about the same amount less loud, and so on.

    If you work in percentages then that goes 31.6%, 10%, 3.1%. I don't think that's very intuitive - the percentage changes are wildly different but the perceived change is about the same.

    If you make a volume slider that works in percentages then you'll find the top half of the slider seems to do very little, and the very bottom end of the slider does very quick changes, which makes it harder to control low volumes. If the volume slider is in dB, then it works more like people expect it to. If you ever see volume controls in software, they are very likely working in dB - usually the linear scale with all the control really happening at the low end is seen as a mistake. Similarly if you want to fade in audio, it's better to fade it linearly in a dB scale for a natural increase in volume. Otherwise you get a similar problem to the linear volume slider: the volume very quickly increases to nearly full volume, and then the rest of the fade time it only gets very slightly louder.

    So really you should generally be working with volumes as dB all the time anyway. Can you give an example of when you'd prefer to do something with a percentage volume?

    I don't understand how you can create a slider with the db range -infinity to 0, how can the user lower it to half as loud (-10db) if the slider also has to linearly go to -infinity as than -10 would be almost no change to the slider?

    So you need to remap the range in some way to get a usable slider.

    Using 10 ^ (decibel / 33) and 33 * log10(interval) gives me the range of 0-1 and feels like I can set volume in a intuitive manner.

    But maybe I am missing something.

    Hello Ashley, thanks for answering.

    What I am suggesting is that Construct automatically applies the formula 33*log10(percent/100) to the value entered by the user when he chooses the "Percent (%)" option in the dropdown list, and thereby he obtains a perceptual result, i.e. a result that the human ear perceives as balanced in relation to the value entered, between 0% and 100%.

    For this reason, at the end of the action description, it would say something similar to this: "In percentage, a formula is applied to provide a perceptual result."

    In this way, the user would have the option of setting the sound volume in a more friendly and intuitive way, but without eliminating the possibility of entering the value in decibels for those who prefer it.

    That's why I suggest that both options be available in a dropdown list.

    Best regards.

    I think it would be misleading to call that option "percent". If there's another mode, it should just be the 0-1 value that goes directly to the Web Audio API, and then you can use your own formula if you want.

    I'm not sure what every software developer who has ever made a volume slider has done, but I would guess there is either a special case for volume slider 0 = -Infinity dB (i.e. at the very bottom it becomes a mute), or a very short linear ramp at the very bottom of the scale, or perhaps some other exponential formula that ends on 0. I think just special casing 0 = -Infinity is a reasonable way to handle it.

    I think it would be misleading to call that option "percent". If there's another mode, it should just be the 0-1 value that goes directly to the Web Audio API, and then you can use your own formula if you want.

    Yes, I agree.

    I'm not sure what every software developer who has ever made a volume slider has done, but I would guess there is either a special case for volume slider 0 = -Infinity dB (i.e. at the very bottom it becomes a mute), or a very short linear ramp at the very bottom of the scale, or perhaps some other exponential formula that ends on 0. I think just special casing 0 = -Infinity is a reasonable way to handle it.

    I think an exponential formula that ends on 0, as several users suggest, is probably most convenient.

    Best regards.

    I mean with the formula

    Decibels = 33*log10(percent/100)

    We get approximately

    0db for 100%

    -5db for 75%

    -10db for 50%

    -20db for 25%

    -infinity db for 0%

    So decibels and percent are pretty interchangeable in that regard. Fading with one unit vs the other would give different results for sure. For a slider I’d use percent. With the numbers I’m not seeing how the top half would barely do anything.

    Construct and Audacity are the only pieces of software I’ve used that has decibels. I’ve certainly never played a game where volume was anything but a percent. Audio apis such as webaudio and fmod set volume in the 0-1 range, so basically a percentage.

    Just to be clear, we can set volume to -infinity for silence? I have often been setting it to -100 for silence, I thought it worked like a backwards percentage (-100 being 0% volume, and 0 being 100% volume).

    Always unsure to touch infinity as I assumed this breaks things (like where I've spawned an object and it's glitching, somehow has infinity as width/pos).

    In this context it’s fine using -infinity for volume. It converts to 0 anyways internally when the decibels are converted back to the 0-1 range for webaudio

    Construct and Audacity are the only pieces of software I’ve used that has decibels. I’ve certainly never played a game where volume was anything but a percent.

    I think that, just to confuse things, most software actually uses a dB scale for their volume sliders, but label it as 0-100. Most normal users don't know what dB means so presenting a dB scale slider as 0-100 is easier to understand and still works in terms of perceived volume.

Jump to:
Active Users
There are 2 visitors browsing this topic (0 users and 2 guests)