summaryrefslogtreecommitdiff
path: root/TODO.md
blob: 072efe21d3e72739dd0280d58bacbe60f849eed1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# To-Do List

**High-level task tracker.** See individual design docs for implementation details.

**Completed tasks:** `doc/COMPLETED.md`

---

## Priority 1: Spectral Brush Editor (Task #5) [IN PROGRESS]

Procedural spectrogram tool: 50-100× compression (5 KB .spec → ~100 bytes C++).

**Design:** `doc/SPECTRAL_BRUSH_EDITOR.md`

---

## ~~Priority 2: Workspace System (Task #77)~~ [COMPLETED]

Self-contained workspaces for parallel demo development.

**Design:** `doc/WORKSPACE_SYSTEM.md`

**Usage:** `cmake -B build -DDEMO_WORKSPACE=main`

---

## Priority 2: CNN v2 - Parametric Static Features (Task #85) [COMPLETE]

Enhanced CNN post-processing with multi-dimensional feature inputs.

**Design:** `doc/CNN_V2.md`

**Status:**
- ✅ Full implementation complete and validated
- ✅ Binary weight loading fixed (FATAL_CHECK inversion bug)
- ✅ Training pipeline: 100 epochs, 3×3 kernels, patch-based
- ✅ All tests passing (36/36)

**Specs:**
- 7D static features (RGBD + UV + sin + bias)
- Storage buffer weights (~3.2 KB, 8→4→4 channels)
- Dynamic layer count, per-layer params
- <10 KB target achieved

**TODO:** 8-bit quantization (2× reduction, needs QAT).

---

## Priority 3: Tracker Humanization & Sample Offset

Enhance tracker with sample offset and humanization for realistic playback.

**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 <name> [OFFSET <sec>] [VOL <vol>]`
   - Apply negative `start_offset_samples` in `trigger_note_event()`

2. **Humanization:** Per-note random timing/volume variation (baked into WAV export)
   - Add to `TrackerScore`: `humanize_seed`, `timing_variation_pct`, `volume_variation_pct`
   - `.track` syntax: `HUMANIZE SEED <int> TIMING <pct> VOLUME <pct>`
   - Apply per-event RNG modulation in `tracker_update()`

---

## Priority 4: 3D System Enhancements (Task #18)

Pipeline for importing complex 3D scenes to replace hardcoded geometry.

**Status:** C++ object data loading complete. Shader SDF integration pending.

---

## Priority 4: WGSL Modularization (Task #50) [RECURRENT]

Ongoing shader code hygiene for granular, reusable snippets.

---

## Future: Size Optimization (64k Target)

- Task #22: Windows Native Platform (Win32)
- Task #28: Spectrogram Quantization
- Task #34: Full STL Removal
- Task #35: CRT Replacement

**Measure:** `./scripts/measure_size.sh`

---

**Backlog:** `doc/BACKLOG.md` for untriaged ideas