diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-06 16:53:41 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-06 16:53:41 +0100 |
| commit | f998bfcd7a6167ae6bdf5ad7f8685b2cdf1fe811 (patch) | |
| tree | 6dc288b12ed30914007ea54eaa8b2cc2d778b71b /src/gpu/demo_effects.h | |
| parent | 6ed5952afe5c7a03f82ea02d261c3be2d56bd6a1 (diff) | |
fix(audio): Remove Hamming window from synthesis (before IDCT)
Removed incorrect windowing before IDCT in both C++ and JavaScript.
The Hamming window is ONLY for analysis (before DCT), not synthesis.
Changes:
- synth.cc: Removed windowing before IDCT (direct spectral → IDCT)
- spectral_editor/script.js: Removed spectrum windowing, kept time-domain window for overlap-add
- editor/script.js: Removed spectrum windowing, kept time-domain window for smooth transitions
Windowing Strategy (Correct):
- ANALYSIS (spectool.cc, gen.cc): Apply window BEFORE DCT
- SYNTHESIS (synth.cc, editors): NO window before IDCT
Why:
- Analysis window reduces spectral leakage during DCT
- Synthesis needs raw IDCT output for accurate reconstruction
- Time-domain window after IDCT is OK for overlap-add smoothing
Result:
- Correct audio synthesis without spectral distortion
- Spectrograms reconstruct properly
- C++ and JavaScript now match correct approach
All 23 tests pass.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/gpu/demo_effects.h')
0 files changed, 0 insertions, 0 deletions
