summaryrefslogtreecommitdiff
path: root/src/audio/gen.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-26 10:09:34 +0100
committerskal <pascal.massimino@gmail.com>2026-03-26 10:09:34 +0100
commit8c5e41724fdfc3be24e95f48ae4b2be616404074 (patch)
tree052d8512b43ff4d41af66d71f5fa8dc7de0f609a /src/audio/gen.cc
parent26627e8b9fee3fb3b2ec6314fc5cf45620769fcb (diff)
fix(audio): P1-P3 fixes from audio code reviewHEADmain
P1 — correctness bugs: - tracker.cc: move delete[] loop before pool reset so guard condition is valid - audio_engine: replace tracker_reset() with tracker_init() in reset()/seek() so synth IDs are re-registered after synth_init() clears spectrogram slots - spectrogram_resource_manager: set spec.version in load_procedural() (was UB) P2 — minor bugs: - synth.cc: move pan clamp unconditionally before debug-only block - gen.cc: remove dead `freq` variable in generate_note_spectrogram() - tracker.cc: remove duplicate g_sample_synth_cache clear loop P3 — cleanup: - Replace hardcoded 32000.0f with RING_BUFFER_SAMPLE_RATE (5 sites) - audio.cc: extract clip_samples() helper, remove duplicated clip loops - audio_engine: inline update_silent(), remove no-op prewarm_for_time_range() - Remove stale comments: stdio.h include, NEW: labels, CACHING block, NOTE: - Move TODO(timing) drift notes from source to TODO.md handoff(Gemini): audio review implemented, 36/36 tests passing
Diffstat (limited to 'src/audio/gen.cc')
-rw-r--r--src/audio/gen.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/audio/gen.cc b/src/audio/gen.cc
index cd36d54..9d18517 100644
--- a/src/audio/gen.cc
+++ b/src/audio/gen.cc
@@ -4,6 +4,7 @@
#include "audio/gen.h"
#include "audio/dct.h"
+#include "audio/ring_buffer.h"
#include "audio/window.h"
#include <math.h>
#include <stdlib.h>
@@ -11,7 +12,7 @@
std::vector<float> generate_note_spectrogram(const NoteParams& params,
int* out_num_frames) {
- int num_frames = (int)(params.duration_sec * 32000.0f / DCT_SIZE);
+ int num_frames = (int)(params.duration_sec * RING_BUFFER_SAMPLE_RATE / DCT_SIZE);
if (num_frames < 1)
num_frames = 1;
*out_num_frames = num_frames;
@@ -21,7 +22,7 @@ std::vector<float> generate_note_spectrogram(const NoteParams& params,
hamming_window_512(window);
float phase = 0.0f;
- float time_step = 1.0f / 32000.0f;
+ float time_step = 1.0f / RING_BUFFER_SAMPLE_RATE;
for (int f = 0; f < num_frames; ++f) {
float pcm_chunk[DCT_SIZE] = {0};
@@ -49,7 +50,6 @@ std::vector<float> generate_note_spectrogram(const NoteParams& params,
float sample = 0.0f;
for (int h = 1; h <= params.num_harmonics; ++h) {
float h_amp = powf(params.harmonic_decay, h - 1);
- float freq = (params.base_freq + vib + pitch_rnd) * h;
sample += sinf(phase * h) * h_amp;
}