summaryrefslogtreecommitdiff
path: root/doc/TRACKER.md
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-05 21:50:53 +0100
committerskal <pascal.massimino@gmail.com>2026-03-05 21:50:53 +0100
commit2f8926f433248af28081497e8371e02abe61d6ff (patch)
tree30e480325e2b7f01947a5ca2f8b3865e600d8bb7 /doc/TRACKER.md
parente2c3c3e95b6a9e53b4631b271640bb9914f8c95e (diff)
feat(spectool): add --wav decode, IMDCT, and roundtrip test
- spectool --wav <input.spec> <output.wav>: decodes .spec to mono 16-bit WAV at 32 kHz using IDCT-OLA synthesis (no synthesis window). The analysis Hann window at 50% overlap satisfies w[n]+w[n+H]=1, so the synthesis window must be rectangular for perfect reconstruction. - Add imdct_512 / imdct_fft to audio lib (fft.cc, fft.h, idct.cc, dct.h) for future MDCT-based synthesis. - test_wav_roundtrip: in-process OLA analyze+decode SNR test (≥30 dB). Currently measures 53 dB on a 440 Hz sine. - Fix stale test_spectool.cc: version assertion updated from 1 to SPEC_VERSION_V2_OLA (was always wrong since OLA fix landed). - Docs: TOOLS_REFERENCE.md removes dead specview, documents --wav / --normalize / test_gen. HOWTO.md adds decode section. TRACKER.md notes spec v2 OLA format and decode command. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'doc/TRACKER.md')
-rw-r--r--doc/TRACKER.md6
1 files changed, 5 insertions, 1 deletions
diff --git a/doc/TRACKER.md b/doc/TRACKER.md
index 53d8338..e2c21aa 100644
--- a/doc/TRACKER.md
+++ b/doc/TRACKER.md
@@ -24,7 +24,7 @@ HUMANIZE SEED <int> TIMING <pct> VOLUME <pct> # Optional humanization
# Generated samples:
SAMPLE <name>, <freq>, <dur>, <amp>, <attack>, <harmonics>, <decay> [OFFSET <sec>]
-# Asset samples (.spec):
+# Asset samples (.spec v2 OLA format — generated by spectool analyze):
SAMPLE <asset_id> [OFFSET <sec>] # ASSET_* from assets.txt
# Asset samples (MP3, non-STRIP_ALL only):
@@ -32,6 +32,10 @@ SAMPLE <asset_id> [OFFSET <sec>] # ASSET_* from assets.txt
# Add to assets.txt: NAME, NONE, music/file.mp3, "description"
SAMPLE ASSET_NAME [OFFSET <sec>] # Decoded at init; same syntax as .spec
+# .spec format: SPEC_VERSION_V2_OLA (version=2). Synthesis uses IDCT-OLA
+# (Hann analysis window, 50% overlap, hop=256 samples at 32 kHz).
+# Decode a .spec to WAV for inspection: spectool --wav input.spec out.wav
+
# Auto-generated notes (no SAMPLE declaration needed):
# NOTE_C4, NOTE_A#3, NOTE_Eb2, etc.