この発症検出プログラムには、 iOSに組み込むのが難しいFFTW3ライブラリを利用する数行のコードがあります。Accelerateフレームワークを使用して置き換えたいと思います。
onsetdshelpers.hには、次のメンバー変数があります。
fftwf_plan fftplan;
次に、onsetdshelpers.cには、いくつかのmallocメソッドがあります。
odsbuf->windoweddata = (float*) fftwf_malloc(framesizebytes);
odsbuf->fftbuf = (float*) fftwf_malloc(framesizebytes);
インスタンス化する方法fftplan
odsbuf->fftplan = fftwf_plan_r2r_1d(ods->fftsize, odsbuf->windoweddata, odsbuf->fftbuf, FFTW_R2HC, FFTW_ESTIMATE);
メモリを解放する方法:
void onsetsds_destroy_audiodata(OnsetsDSAudioBuf *odsbuf){
// take down the FFTW stuff
fftwf_destroy_plan(odsbuf->fftplan);
// free mem
free(odsbuf->data);
free(odsbuf->window);
fftwf_free(odsbuf->windoweddata);
fftwf_free(odsbuf->fftbuf);
}
そして最後に、実際にFFTを実行する方法:
fftwf_execute(odsbuf->fftplan);
CとFFTに関する私の知識はかなり限られています。私を正しい方向に向かわせるための指針はありがたいです。