- Cooley-Tukey radix-2 FFT (forward + inverse with /N normalization) - WOLA STFT/ISTFT with Hann window (nfft=2048, hop=512) - WAV16 read + WAV24 write (fixed aliasing bug in read) - Fixed in-place processing bug (separate input/output buffers) - Biquad filter (peak/shelf/reject) - Peak detector skeleton - MS encode/decode (M8 stereo) - Harness: WAV16 → STFT → WAV24 passthrough verified non-zero output Verified: burst500.wav passthrough produces output RMS=0.0678
15 lines
346 B
C++
15 lines
346 B
C++
#pragma once
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <complex>
|
|
#include "fft_plan.hpp"
|
|
|
|
namespace fft {
|
|
|
|
void init_plan(FFTPlan* plan, uint32_t log2N);
|
|
void build_twiddle(FFTPlan* plan, double* scratch);
|
|
void execute(const FFTPlan* plan, std::complex<double>* buf);
|
|
void execute_inverse(const FFTPlan* plan, std::complex<double>* buf);
|
|
|
|
}
|