pub fn build_fft_cache(audio: &[i16]) -> Vec<Complex<f32>>
Compute only the forward FFT cache (192 000-point) — expensive, shared across all subsequent downsample calls for the same audio block.