続いてFFTですが、ざっくり言うと、元データの周波数成分を取り出す機能です。FFTBUFに64要素の音声データが入っているとして、
'FFT
DIM FR[64],FI[64],ZERO[64]
FFT FR,FI,FFTBUF,ZERO 'FFT
'周波数毎のパワーP(=FR^2+FI^2)を計算
DIM P[64]: ARYOP #AOPMUL,FR,FR,FR: ARYOP #AOPMAD,P,FI,FI,FR
'パワーをデシベルに変換
FOR I=0 TO 64/2-1
D=SQR(P[I])*100
DB[I]=20*LOG(MAX(D/&H8000,0.001),10)
NEXT
とすると、配列DB[I]に周波数fの成分(強さ)が入ります。Iとfの関係は
f=I*サンプリングレート/64 (ただし、Iは0から31(=64/2-1)まで)
となります(たぶん(*ノノ)
1そうだね プレイ済み