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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# 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:** `cnn_v2/docs/CNN_V2.md`
**Status:**
- ✅ Full implementation complete and validated
- ✅ Sigmoid activation (smooth gradients, fixes training collapse)
- ✅ Training pipeline: patch-based, stable convergence
- ✅ All tests passing (34/36, 2 unrelated script failures)
**Specs:**
- 7D static features (RGBD + UV + sin + bias)
- Storage buffer weights (~3.2 KB, 8→4→4 channels)
- Sigmoid for layer 0 & final, ReLU for middle layers
- <10 KB target achieved
**TODO:** 8-bit quantization (2× reduction, needs QAT).
---
## Priority 3: Test Infrastructure Maintenance [ONGOING]
**Status:** 35/35 tests passing
**Outstanding TODOs:**
1. **test_effect_base.cc:250** - Fix SIGTRAP in `test_sequence_render()` (commented out)
- All other tests validate the same functionality
- Issue: Hangs/crashes during render with external sink view
2. **test_sequence.cc** - Port legacy sequence tests (currently disabled)
- Uses legacy Effect/MainSequence system
- Lines 168, 173, 182: Re-enable lifecycle and simulation tests after port
3. **test_audio_engine.cc:152** - Re-enable commented test after debugging
4. **test_fft.cc:87** - Investigate FFT-DCT algorithm discrepancy
- May need different algorithm or fix existing one
---
## ~~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 (compile-time):** Intrinsic offset per sample, zero runtime cost
- `.track` syntax: `SAMPLE <name> OFFSET <sec>`
- Applied during compilation, preserves beat sync
2. **Humanization (runtime, deterministic):** Per-note timing/volume variation
- `.track` syntax: `HUMANIZE SEED <int> TIMING <pct> VOLUME <pct>`
- Deterministic RNG ensures identical playback and WAV export
**Test:** `data/test_humanize.track`
---
## Priority 4: Audio System Enhancements [LOW PRIORITY]
Extended audio capabilities for sample assets and procedural synthesis.
**Sub-tasks:**
1. **MP3 Sample Assets:**
- Integrate miniaudio for MP3 decoding
- Add ASSET_*.mp3 support to asset_packer
- Convert to PCM in AssetManager or synth on load
- Use case: Compressed sample libraries
2. **GPU-Accelerated PCM Synthesis:**
- Compute shader for direct PCM generation (bypass spectrogram)
- Write to compute buffer, readback to synth
- Use case: Real-time modulation, complex waveforms
- Lower latency than spectrogram path
---
## 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
|