Minim初体验:利用幅度(amplitude)变化进行简单的音乐分析
首先从示例程序出发,稍微看了一下之后选择了从Analysis-SoundSpectrum这个示例开始探索,目标是能拿到和音乐内容相关的数据,从而实现简单的分析,最简单的就是某种元素的“有无”,简单来说,以这次实验用到的钢琴曲为例,就是钢琴响一下,就应该探测到这一下是什么时候开始和结束的,然后就可以可视化出来了!Let’s go.
首先看会用到的类:
Minim minim; // 必须初始化的对象
AudioPlayer jingle; // 控制音乐播放
FFT fftLin;
FFT fftLog;
FFT
类是分析用到的关键对象,音频是时域上的数据流,经过FFT之后就能变换到频域。声音是不同频率信号的叠加,那么如果对于一种声音(钢琴声,吉他声etc)我们能够知道它相应的频率(带),那么分析应该就会很简单了。(当然并没有那么简单,因为对我们而言的一种声音实际上也混进了很多的频率)
fftLin = new FFT( jingle.bufferSize(), jingle.sampleRate() );
fftLin.linAverages(