私のAndroidプロジェクトでは、Androidで問題なく動作するJTranformsを使用しました。
コード例:
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
AudioRecord ar = // initialize AudioRecord here;
ar.startRecording();
// Here's the Fast Fourier Transform from JTransforms
DoubleFFT_1D fft = new DoubleFFT_1D(samples.length);
do {
// Read audio to 'samples' array and convert it to double[]
ar.read(samples, 0, samples.length);
// Will store FFT in 'samplesD'
fft.realForward(samplesD);
} while ( /* condition */ );
ar.stop();
ar.release();
アップデート:
ここでgithubJTransforms
に管理されており、ここでMavenプラグインとして利用できます。
最近のGradleバージョンで使用するには、次のようにします。
dependencies {
...
implementation 'com.github.wendykierp:JTransforms:3.1'
}