Processing 音频文件的非实时FFT分析

Processing 音频文件的非实时FFT分析,processing,minim,Processing,Minim,我正试图对一个文件进行频谱分析。因为我想分析的文件可能相当长(40分钟左右),所以实时分析对我来说不是一个选择 我目前正在使用Minin的FFT类,但看起来我只能运行已经播放的歌曲。我也看过了,但我知道这也仅限于有一个实时流 有没有一种方法可以将音频文件分成小块进行迭代,然后对该数据运行fft 以下是我现在所拥有的内容的简化版本: void setup() { 最小值=新的最小值(本); 帧率(30); song=mini.loadFile(“../shortfile.mp3”,1024); s

我正试图对一个文件进行频谱分析。因为我想分析的文件可能相当长(40分钟左右),所以实时分析对我来说不是一个选择

我目前正在使用Minin的FFT类,但看起来我只能运行已经播放的歌曲。我也看过了,但我知道这也仅限于有一个实时流

有没有一种方法可以将音频文件分成小块进行迭代,然后对该数据运行fft

以下是我现在所拥有的内容的简化版本:

void setup()
{
最小值=新的最小值(本);
帧率(30);
song=mini.loadFile(“../shortfile.mp3”,1024);
song.loop();
fft=新的fft(song.bufferSize(),song.sampleRate());
背景(#ffffff);
}
作废提款()
{
fft.forward(song.mix);
对于(int i=0;i
您希望使用标准io命令读取部分文件,然后使用FFTW。看


或者,您也可以在线从代码片段编写自己的FFT代码。这将比学习如何使用FFTW更快。看看这个页面,它似乎有一个C FFT实现。如果你去掉虚部,你会得到一个容易理解的1D FFT方案。

这个来自官方GitHub仓库的例子可能会对你有所帮助;他们叫它。

酷,这似乎很有用。我现在不是真的在研究这个问题,不过还是要谢谢你:)