EDITAR: Aparentemente, el valor no infinito más bajo es -250 . Generé un archivo de audio silencioso con DarkAudacity y el valor de frecuencia más bajo que obtuve fue -249.21243286132812 , que es BÁSICAMENTE -250
Ah, sí, el título de la pregunta puede estar un poco equivocado, así que supongo que deberías hacer esto, como respuesta a la pregunta del título:
for (let i = 0; i < FrequencyData.length; i++) { FrequencyData[i] = FrequencyData[i] / 250 + 1; }Pregunta inicial:
Lo que quiero tener: una matriz de datos de frecuencia con la que sea más fácil trabajar.
Lo que debo hacer para lograrlo: abstraer los datos de frecuencia en valores entre 0 y 1. ( 0 siendo silencioso y 1 siendo "más alto")
El problema: no sé cuál es el valor más bajo que AnalyserNode.getFloatFrequencyData() puede devolver (sin embargo, supongo que el valor más alto es solo 0 , a menos que me digan lo contrario)
Lo que he probado:
-Infinity , lo cual no ayuda porque solo obtendría 0 o 1 si intentara escalar eso)-236.[lotsOfDecimalsHere] , y no me gusta pensar que el valor más bajo tiene decimales)Esto es aproximadamente lo que fue mi segundo intento:
let lowest = Infinity; function loop() { myAnalyserNode.getFloatFrequencyData(myFrequencyData); if (!myFrequencyData.includes(-Infinity)) { lowest = Math.min(lowest, ...myFrequencyData); } console.log(lowest); requestAnimationFrame(loop); } loop();