summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-06 18:08:06 +0100
committerskal <pascal.massimino@gmail.com>2026-02-06 18:08:06 +0100
commit42390a8a28377cd25021b1647abf9dbd43d4e2c8 (patch)
tree174f10bc635754b20764e764f1b9786f50f01f63 /CMakeLists.txt
parent8aba6d94871315eac0153134a6c740344964d31f (diff)
fix(audio): Fix spectrogram amplification issue and add diagnostic tool
## 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)
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt4
1 files changed, 4 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fb8bb7e..2bf4d4a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -432,6 +432,10 @@ if(DEMO_BUILD_TOOLS OR DEMO_BUILD_TESTS)
add_dependencies(spectool generate_tracker_music generate_demo_assets)
add_executable(specview tools/specview.cc)
+
+ add_demo_executable(specplay tools/specplay.cc ${PLATFORM_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
+ target_link_libraries(specplay PRIVATE audio util ${DEMO_LIBS})
+ add_dependencies(specplay generate_demo_assets)
endif()
#-- - Global Target Configuration -- -