0

この発症検出プログラムには、 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に関する私の知識はかなり限られています。私を正しい方向に向かわせるための指針はありがたいです。

4

0 に答える 0