• 0 Posts
  • 5 Comments
Joined 1 year ago
cake
Cake day: June 17th, 2023

help-circle
  • With Celsius it’s all nice and round numbers unlike the mess called fahrenheit:

    0°C—black ice, snow, be careful on the road and you probably want to wear gloves and a hat
    0…10°C—a bit chilly, but you can leave your hat home
    10…20°C—pleasant, but not quite tee-and-shorts yet
    20…30°C—nice summer weather
    30…40°C—holy crap it’s hot!
    40…50°C—are you fucking kidding me?
    50+°C—my proteins are starting to denature…
    100°C—good sauna
    110°C—finns think it’s a good sauna
    120+°C—finns think it’s getting a bit too hot in the sauna. Italians tend to vaporize in sauna (speaking from experience)

    0…-10°C—a pleasant winter weather
    -10…-20°C—getting a bit frosty
    -20…-30°C—finns think it’s a pleasant winter weather
    -40°C—vodka freezes. Russians and finns agree it’s getting a bit frosty
    -50°C—getting a little hard to start your Uazik in the morning in Siberia due to engine oil solidifying
    -60°C—researchers in Antarctica all agree it’s getting a bit frosty and someone should close the window




  • No, it isn’t. OS and app volume controls are not implemented on driver level, but in each application individually, or you wouldn’t be able to change OS volume and in-app volume independent of each other. It’s simple math, multiplying audio sample values with a coefficient, best done in 32 bit floating point.

    The question is not whether to do the math at driver level or in the userspace. The question is: if the user sets their volume slider to the middle, what value that coefficient should be? Most apps use simple linear correlation (middle point halves values which is 6 dB of attenuation or -6 dB(FS)) which is not how human hearing works. Log volume control would have the middle point at, eg, -40 dB(FS) and zero point at -80 dB(FS), giving psychoacoustically useful range in both halves of the bar. This is how analog volume controls on amplifiers work (not exactly so, but pretty close).

    Driver level volume control can be done, but then you’d need to open your sound card control app and set it there. It would be an addition to OS and app volume controls. It would not be tied to OS or in-app volume controls or affected by standard multimedia keys on your keyboard. And if you decide to do OS volume control at driver level, in-app volume controls would still need to exist and be at the mercy of the app devs competency at implementing it.


  • Implementing proper logarithmic volume controls and defaulting them to -20 dB(FS) would be great. But the math involved is slightly more complicated* than the simplistic “multiply everything with a coefficient between 0 and 1” so devs won’t bother (if they even know about logarithmic volume controls at all).

    *I did logarithmic volume slider in Jscript for foobar2000 using a Jscript GUI plugin and it was not too difficult, but not straightforward either. Getting the button states and scaling to work correctly was more difficult and I never solved some annoying bugs. That was the first and the only “programming” I’ve ever done in my life.