Tengo un archivo de sonido y estoy usando el nodo de ganancia de audio para controlar el volumen del archivo. Los valores de sonido van de 0 a 1, siendo 1 el volumen máximo
El usuario puede elegir entre 12 niveles de volumen, que deberían cambiar el sonido de forma logarítmica. Simplemente no puedo encontrar la fórmula para ello.
Actualmente estoy usando una fórmula para normalizar los valores 1-2 a un rango de 0 a 1, sin embargo, no estoy seguro de cómo aumentar la ganancia de forma no lineal.
// sound level = the value between 0 and 1, corresponding to the user input which is from 1 to 12. export const setSoundFileVolume = (soundLevel) => { return (((100 / 12) * Number(soundLevel)); };¿Cómo puedo configurar el sonido logarítmicamente?
Normalmente uso esta función (en C):
double linear_to_logarithmic(double x){ return log2(1+x); };Pero en javascript, tal vez deberías echarle un vistazo a esto: