|
## Root Cause
.spec files were NOT regenerated after orthonormal DCT changes (commit d9e0da9).
They contained spectrograms from old non-orthonormal DCT (16x larger values),
but were played back with new orthonormal IDCT.
Result: 16x amplification → Peaks of 12-17x → Severe clipping/distortion
## Diagnosis Tool
Created specplay tool to analyze and play .spec/.wav files:
- Reports PCM peak and RMS values
- Detects clipping during playback
- Usage: ./build/specplay <file.spec|file.wav>
## Fixes
1. Revert accidental window.h include in synth.cc (keep no-window state)
2. Adjust gen.cc scaling from 16x to 6.4x (16/2.5) for procedural notes
3. Regenerated ALL .spec files with ./scripts/gen_spectrograms.sh
## Verified Results
Before: Peak=16.571 (KICK_3), 12.902 (SNARE_2), 14.383 (SNARE_3)
After: Peak=0.787 (BASS_GUITAR_FEEL), 0.759 (SNARE_909), 0.403 (KICK_606)
All peaks now < 1.0 (safe range)
|