diff options
| -rw-r--r-- | TODO.md | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -295,6 +295,32 @@ This file tracks prioritized tasks with detailed attack plans. - **Priority 5**: Interactive mode (seek, loop, volume control) - See `tools/specplay_README.md` for detailed feature list +- [ ] **Task #65: Data-Driven Tempo Control**: Move tempo variation from code to data files + - **Current**: `g_tempo_scale` is hardcoded in `main.cc` with manual animation curves + - **Goal**: Define tempo curves in `.seq` or `.track` files for data-driven tempo control + - **Approach A**: Add TEMPO directive to `.seq` format + - Example: `TEMPO 0.0 1.0`, `TEMPO 10.0 2.0`, `TEMPO 20.0 1.0` (time, scale pairs) + - seq_compiler generates tempo curve array in timeline.cc + - **Approach B**: Add tempo column to music.track + - Each pattern trigger can specify tempo_scale override + - tracker_compiler generates tempo events in music_data.cc + - **Benefits**: Non-programmers can edit tempo, easier iteration, version control friendly + - **Priority**: Low (current hardcoded approach works, but less flexible) + +### Developer Tools +- [ ] **Task #66: External Asset Loading for Debugging**: mmap() asset files instead of embedded data + - **Current**: All assets embedded in `assets_data.cc` (regenerate on every asset change) + - **Goal**: Load assets from external files in debug builds for faster iteration + - **Scope**: macOS only, non-STRIP_ALL builds only + - **Implementation**: + - Add `DEMO_ENABLE_EXTERNAL_ASSETS` CMake option + - Modify `GetAsset()` to check for external file first (e.g., `assets/final/<name>`) + - Use `mmap()` to map file into memory (replaces `uint8_t asset[]` array) + - Fallback to embedded data if file not found + - **Benefits**: Edit shaders/assets without regenerating assets_data.cc (~10s rebuild) + - **Trade-offs**: Adds runtime file I/O, only useful during development + - **Priority**: Low (current workflow acceptable, but nice-to-have for rapid iteration) + ### Visual Effects - [ ] **Task #52: Procedural SDF Font**: Minimal bezier/spline set for [A-Z, 0-9] and SDF rendering. - [x] **Task #53: Particles Shader Polish**: Improve visual quality of particles. (Completed February 6, 2026) |
