So the story goes like this: Human ear is logarithmic to sound pressure Your control is linear Your control doesn't sound linear to human ear. change between 5% to 15% is much more than 85% to 100% If you don't hear the difference, ask someone who has proper ears, I'v had my friend who does audio work for a living confirm that your control is linear. And no this does NOT mean that the visual side of the UI changes, it can stay on what it is. And yes, other games do it the same way you have done it, but it still doesn't make it good. Kerbal space program messes it up, Demigod messes it up and the list goes on. X3 Doesn't mess it up, although it's not purely logarithmic. Now you might think that this is not worth it? Devs have more important things to do? NO, this is a trivial change to the code. I can write the code for you if you like. Hell if you give me the small piece of code that handles the volume control UI, I can code it for you I'll do it for free even. But how can I know? Surely I'm not on the dev team, and what would I understand about writing software? I write software for a living, I'm a C++ pro, I'v written multiple application that are praised by their users, I'v done volume control and audio players using portaudio, audio players that do not clip the sound, ever. Unlike many other implementations. Sorry if i'm a bit mad about this, but it seems that nobody bothers to try and understand any of this. All I get is shoddy excuses why not.
Feel free to play with sound settings, it's here: Or just open console "~" and play with master volume directly: Code: engine.call('set_volume', 'master', 0.1); I'm don't sure what is minimal step available here, so you can try it yourself.
Also I just checked it with headphones and there is definitely difference between "0.002" and "0.005", so I sure you can customize javascript UI for yourself easy.
Only because you said please :mrgreen: You're right, this is a lot better. It drove me crazy too, but I managed to set my music volume to 5 and quickly forgot about this bug. If you're at all familiar with frontend webdev, come hang out in the modders forum!! We need more people like you :ugeek:
I'm not, I didn't have the time to figure out where my code should go and js was a bit odd for me. Here's a slightly different version: function logSlider(position) { // position will be between 0 and 100 var minp = 0; var maxp = 100; var minDb = -40; if(position == 0) { // 0 means off, decibels don't have off. return 0; } var decibels = (maxp - position) / maxp * minDb; var retval = Math.pow(10, (decibels / 20)); console.log("set_volume " + retval); return retval * 100; } I modified it slightly, 0 is now off and the math is easier to follow I think? Will this make it into the game?
Wtf. Are you serious? I don't get the big difference xD Anyway, neutrino confirmed that it is already in their current developer version.
Yeah But what I don't get are the comments saying that this should not be made, I guess on the grounds that it would take something big away from the next patch. I don't think so, this fix was just 1 function with ~8 lines of functional code. Which I even gave away for free. Ok, there was a bit more to it that I couldn't figure out as I don't have any prior experience with js. So that might have a bit of doing, but should have not been anything major. I knew what I was supposed to do, I just couldn't find out where I should have done it. Correct me on this if I'm wrong but I'd say making this didn't remove anything big from the next patch. And what's up with you guys, it's like you cannot wait to get to play the completed game