我試圖在文件上運行頻譜分析。由於我想分析的文件可能很長(40分鐘左右),因此實時分析這個文件對我來說不是一個真正的選擇。對音頻文件的非實時FFT分析
我目前使用Minin的FFT類,但它看起來像我只能運行已經播放的歌曲。我也看過ess library,但我明白這也僅限於實時流。
有沒有一種方法可以在小塊中迭代音頻文件,然後在該數據上運行fft?
這裏是什麼,我現在有一個簡化版本:
void setup()
{
minim = new Minim(this);
frameRate(30);
song = minim.loadFile("../shortfile.mp3", 1024);
song.loop();
fft = new FFT(song.bufferSize(), song.sampleRate());
background(#ffffff);
}
void draw()
{
fft.forward(song.mix);
for(int i = 0; i < height/2; i++)
{
intensity = constrain((log(fft.getBand(i)*1.4)/log(1.15)), 0, 40);
intensity = int(map(intensity, 0 , 40, 0, 255));
stroke(strokeColour(int(intensity)));
point(framecount, i);
}
}
很酷,這似乎很有用。我現在還沒有真正考慮過這個問題,不過謝謝:) – Marco 2013-03-28 10:51:50