- 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
12 lines
317 B
C++
12 lines
317 B
C++
#include "phase_table.hpp"
|
|
#include <array>
|
|
#include <cmath>
|
|
|
|
const std::array<double, PHASE_TABLE_SIZE> phase_table = [] {
|
|
std::array<double, PHASE_TABLE_SIZE> table;
|
|
for (size_t k = 0; k < PHASE_TABLE_SIZE; k++) {
|
|
table[k] = std::sin(k * 2.0 * M_PI / PHASE_TABLE_SIZE);
|
|
}
|
|
return table;
|
|
}();
|