summaryrefslogtreecommitdiff
path: root/src/audio/gen.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/gen.cc')
-rw-r--r--src/audio/gen.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/audio/gen.cc b/src/audio/gen.cc
index 148fc68..5604457 100644
--- a/src/audio/gen.cc
+++ b/src/audio/gen.cc
@@ -69,9 +69,14 @@ std::vector<float> generate_note_spectrogram(const NoteParams& params,
float dct_chunk[DCT_SIZE];
fdct_512(pcm_chunk, dct_chunk);
- // Copy to buffer
+ // Scale up to compensate for orthonormal normalization
+ // Old non-orthonormal DCT had no sqrt scaling, so output was ~sqrt(N/2) larger
+ // Scale factor: sqrt(DCT_SIZE / 2) = sqrt(256) = 16
+ const float scale_factor = sqrtf(DCT_SIZE / 2.0f);
+
+ // Copy to buffer with scaling
for (int i = 0; i < DCT_SIZE; ++i) {
- spec_data[f * DCT_SIZE + i] = dct_chunk[i];
+ spec_data[f * DCT_SIZE + i] = dct_chunk[i] * scale_factor;
}
}