diff options
| author | skal <pascal.massimino@gmail.com> | 2026-03-26 10:09:34 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-03-26 10:09:34 +0100 |
| commit | 8c5e41724fdfc3be24e95f48ae4b2be616404074 (patch) | |
| tree | 052d8512b43ff4d41af66d71f5fa8dc7de0f609a /src/audio/gen.cc | |
| parent | 26627e8b9fee3fb3b2ec6314fc5cf45620769fcb (diff) | |
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.cc | 6 |
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; } |
