mohayonao / timbre

345 stars 28 forks source link

FFT and values ​​of the array #7

Open iacoposk8 opened 11 years ago

iacoposk8 commented 11 years ago

In this example: http://mohayonao.github.com/timbre/documents/fft.html

in the function WaveViewer.animate, there is the following code:

for (i = step, imax = wave.length; i < imax; i += step) { y = (wave[i] - min) / (max - min); context.lineTo(i * dx, height - (height * y)); }

wave in the array (I think) there is a list of volumes achieved by the different frequencies at that time from the audio file

1) these volumes in which units are? decibels? 2) for example, in the array, the position 35 corresponds to that frequency? thanks :)

mohayonao commented 11 years ago

The function WaveViewer.animate is just sloppy that made for a demo.

It's my understanding that the array contains magnitude spectrum, not decibels. Decibels and frequencies probably may be calculated as follow.

decibel[i] = 20 * Math.log(array[i]) * Math.LOG10E frequency[i] = (samplerate / (array.length * 2)) * i

By the way, this repository and document are old anymore. New project page is here: http://mohayonao.github.com/timbre.js/

thanks.

iacoposk8 commented 11 years ago

no way to know the volume of each frequency? thanks for the answer :)