From b5312da2f0e955d9845a929aed5aa6fc21428071 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sat, 23 Dec 2023 00:16:27 +0900 Subject: [PATCH] flat-top fft window for spectrogram --- src/net/torvald/terrarum/audio/dsp/Scope.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/net/torvald/terrarum/audio/dsp/Scope.kt b/src/net/torvald/terrarum/audio/dsp/Scope.kt index 60a26103d..b88f2c65d 100644 --- a/src/net/torvald/terrarum/audio/dsp/Scope.kt +++ b/src/net/torvald/terrarum/audio/dsp/Scope.kt @@ -26,7 +26,15 @@ class Scope : TerrarumAudioFilter() { private val chsum = ComplexArray(FloatArray(2*FFTSIZE)) private val fftOut = ComplexArray(FloatArray(2*FFTSIZE)) - private val fftWin = FloatArray(FFTSIZE) { sin2(PI * it / FFTSIZE).toFloat() } +// private val fftWin = FloatArray(FFTSIZE) { sin2(PI * it / FFTSIZE).toFloat() } // hann + + private val a0 = 0.21557895 + private val a1 = 0.41663158 + private val a2 = 0.277263158 + private val a3 = 0.083578947 + private val a4 = 0.006947368 + private val FT = PI / FFTSIZE + private val fftWin = FloatArray(FFTSIZE) { (a0 - a1*cos(2*it*FT) + a2*cos(4*it*FT) - a3*cos(6*it*FT) + a4*cos(8*it*FT)).toFloat() } // flat-top private val sqrt2p = 0.7071067811865475