From a477013931a3cc7d62cd7bab5e3b556f5af1936b Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 14 Feb 2026 18:07:05 +0100 Subject: docs: mark tracker humanization task as IMPLEMENTED Co-Authored-By: Claude Sonnet 4.5 --- TODO.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/TODO.md b/TODO.md index 7d89e9e..2ee19ef 100644 --- a/TODO.md +++ b/TODO.md @@ -47,20 +47,22 @@ Enhanced CNN post-processing with multi-dimensional feature inputs. --- -## Priority 3: Tracker Humanization & Sample Offset +## ~~Priority 3: Tracker Humanization & Sample Offset~~ [IMPLEMENTED] Enhance tracker with sample offset and humanization for realistic playback. +**Status:** ✅ Both features implemented and tested (commit e9dde3c) + **Features:** -1. **Sample Offset:** Intrinsic offset value per sample (shifts trigger left, preserves beat sync) - - Add `offset_sec` to `NoteParams` (gen.h) and `Sample` struct - - Extend `.track` SAMPLE syntax: `SAMPLE [OFFSET ] [VOL ]` - - Apply negative `start_offset_samples` in `trigger_note_event()` +1. **Sample Offset (compile-time):** Intrinsic offset per sample, zero runtime cost + - `.track` syntax: `SAMPLE OFFSET ` + - Applied during compilation, preserves beat sync -2. **Humanization:** Per-note random timing/volume variation (baked into WAV export) - - Add to `TrackerScore`: `humanize_seed`, `timing_variation_pct`, `volume_variation_pct` +2. **Humanization (runtime, deterministic):** Per-note timing/volume variation - `.track` syntax: `HUMANIZE SEED TIMING VOLUME ` - - Apply per-event RNG modulation in `tracker_update()` + - Deterministic RNG ensures identical playback and WAV export + +**Test:** `data/test_humanize.track` --- -- cgit v1.2.3