summaryrefslogtreecommitdiff
path: root/TODO.md
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-05 22:49:48 +0100
committerskal <pascal.massimino@gmail.com>2026-03-05 22:49:48 +0100
commitdb6fbf8b8eae8b96d129ac673cbf11d67926996a (patch)
tree97d28da56a77c17f5583a9342a77cb065b25f31f /TODO.md
parentb7fc4aa9a6bd15ce9780d46a425971d523c10b92 (diff)
fix(audio): correct OLA synthesis and extract shared ola_encode/ola_decode
- Remove erroneous Hann synthesis window from synth.cc (g_hann * tmp[j]). Hann analysis at 50% overlap satisfies w[n]+w[n+H]=1, so rectangular synthesis gives perfect reconstruction; applying Hann twice was wrong. - Extract ola_encode()/ola_decode()/ola_num_frames() into src/audio/ola.h+cc. spectool and test_wav_roundtrip now use the shared functions. synth.cc lazy-decode path stays inlined (see TODO for future refactor). - Drop dead <atomic> include and g_hann array from synth.cc. - Drop dead window.h include from spectool.cc. - Update PROJECT_CONTEXT.md, COMPLETED.md, TODO.md to reflect correct analysis-only Hann window and new ola.h API. handoff(Gemini): OLA synthesis bug fixed + ola.h factorized. synth.cc lazy-decode still inline (TODO item added). 34/35 tests pass; WavDumpBackendTest failure is pre-existing and unrelated. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md7
1 files changed, 6 insertions, 1 deletions
diff --git a/TODO.md b/TODO.md
index 45623e8..c87fbc2 100644
--- a/TODO.md
+++ b/TODO.md
@@ -36,7 +36,12 @@ Reduce weights from f16 (~3.2 KB) to i8 (~1.6 KB).
## Priority 4: Audio System Enhancements [LOW PRIORITY]
-1. **GPU-Accelerated PCM Synthesis:**
+1. **`synth.cc`: use `ola_decode()` from `src/audio/ola.h`** — the OLA decode logic in
+ `synth_render()` is currently inlined for frame-by-frame lazy decoding. Refactor to
+ call `ola_decode()` for consistency with `spectool` and the test (requires decoupling
+ the per-frame lazy path, e.g. decode a full block on demand then serve samples).
+
+2. **GPU-Accelerated PCM Synthesis:**
- Compute shader for direct PCM generation (bypass spectrogram)
- Write to compute buffer, readback to synth