diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-06 22:33:52 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-06 22:33:52 +0100 |
| commit | 6906b9d75e21b904b3f54f4a4c5b591dd459dc69 (patch) | |
| tree | 521dc2fd19676e2d7b5257843a83aee144a601c0 /TODO.md | |
| parent | b60797c157717bafd834a4b7bc58120b95dffe46 (diff) | |
docs: Add low-priority tasks for tempo control and asset debugging
Added two future enhancement tasks:
Task #65: Data-Driven Tempo Control
- Move g_tempo_scale from hardcoded main.cc to .seq or .track files
- Approach A: TEMPO directive in .seq (time, scale pairs)
- Approach B: tempo column in music.track
- Benefits: Non-programmer friendly, easier iteration
- Priority: Low (current approach works, but less flexible)
Task #66: External Asset Loading for Debugging
- Load assets from files via mmap() instead of embedded arrays
- macOS only, non-STRIP_ALL builds
- Benefits: Edit assets without rebuilding assets_data.cc (~10s saved)
- Trade-offs: Runtime file I/O, development-only feature
- Priority: Low (nice-to-have for rapid iteration)
Both tasks target developer workflow improvements, not critical for 64k goal.
Diffstat (limited to 'TODO.md')
| -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) |
