summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-16 22:56:12 +0100
committerskal <pascal.massimino@gmail.com>2026-02-16 22:56:12 +0100
commit6c02074f22e941942b32e665e0c9c73587ab4a7b (patch)
tree3e466e18cf7c80626bf4e4f7e62d39b0acb8b052
parent55a3408fa083b10fec5b39bd733f5148a7a63bb8 (diff)
fix: make test_demo use workspace files, remove obsolete tools/test_demo.*
- test_demo now uses workspaces/test/{timeline.seq,music.track} - Removed tools/test_demo.{seq,track} (no longer used) - Updated docs to reference workspace files - Changes to workspaces/test/timeline.seq now trigger rebuild Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
-rw-r--r--cmake/DemoExecutables.cmake10
-rw-r--r--doc/WORKSPACE_SYSTEM.md2
-rw-r--r--doc/test_demo_README.md8
-rw-r--r--tools/test_demo.seq5
-rw-r--r--tools/test_demo.track36
5 files changed, 9 insertions, 52 deletions
diff --git a/cmake/DemoExecutables.cmake b/cmake/DemoExecutables.cmake
index 69e4a30..223f406 100644
--- a/cmake/DemoExecutables.cmake
+++ b/cmake/DemoExecutables.cmake
@@ -47,21 +47,21 @@ endif()
# test_demo - Audio/Visual Sync Tool
# =============================================================================
-# Timeline generation
-set(TEST_DEMO_SEQ_PATH ${CMAKE_CURRENT_SOURCE_DIR}/tools/test_demo.seq)
+# Timeline generation (use test workspace)
+set(TEST_DEMO_SEQ_PATH ${CMAKE_CURRENT_SOURCE_DIR}/workspaces/test/timeline.seq)
set(GENERATED_TEST_DEMO_TIMELINE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/test_timeline.cc)
add_custom_command(
OUTPUT ${GENERATED_TEST_DEMO_TIMELINE_CC}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/src/generated
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/tools/seq_compiler.py
${TEST_DEMO_SEQ_PATH} --output ${GENERATED_TEST_DEMO_TIMELINE_CC}
- DEPENDS ${TEST_DEMO_SEQ_PATH}
+ DEPENDS ${TEST_DEMO_SEQ_PATH} src/gpu/demo_effects.h
COMMENT "Compiling test_demo sequence..."
)
add_custom_target(generate_test_demo_timeline ALL DEPENDS ${GENERATED_TEST_DEMO_TIMELINE_CC})
-# Music generation
-set(TEST_DEMO_TRACK_PATH ${CMAKE_CURRENT_SOURCE_DIR}/tools/test_demo.track)
+# Music generation (use test workspace)
+set(TEST_DEMO_TRACK_PATH ${CMAKE_CURRENT_SOURCE_DIR}/workspaces/test/music.track)
set(GENERATED_TEST_DEMO_MUSIC_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/test_demo_music.cc)
add_custom_command(
OUTPUT ${GENERATED_TEST_DEMO_MUSIC_CC}
diff --git a/doc/WORKSPACE_SYSTEM.md b/doc/WORKSPACE_SYSTEM.md
index 64ba120..a0077d2 100644
--- a/doc/WORKSPACE_SYSTEM.md
+++ b/doc/WORKSPACE_SYSTEM.md
@@ -101,8 +101,6 @@ This makes it hard to:
/tools/
originals/ # Source audio files (.wav, .aif)
- test_demo.seq # Test demo timeline
- test_demo.track # Test demo music
```
### Workspace Configuration
diff --git a/doc/test_demo_README.md b/doc/test_demo_README.md
index 6ccada0..3c4631d 100644
--- a/doc/test_demo_README.md
+++ b/doc/test_demo_README.md
@@ -85,9 +85,9 @@ Music time drifts from physical time. Patterns respect tempo scaling.
- Fine-grained: Millisecond-resolution analysis, detect jitter
## Files
-- `src/test_demo.cc`: Main executable (~220 lines)
-- `assets/test_demo.track`: Drum pattern
-- `assets/test_demo.seq`: Visual timeline
+- `src/app/test_demo.cc`: Main executable (~220 lines)
+- `workspaces/test/music.track`: Drum pattern
+- `workspaces/test/timeline.seq`: Visual timeline
- `src/generated/test_demo_*.cc`: Generated code
## Verification
@@ -111,7 +111,7 @@ Music time drifts from physical time. Patterns respect tempo scaling.
**Flash before audio:** Reduce ring buffer size (`ring_buffer.h`)
**Flash after audio:** Increase pre-fill (`audio_render_ahead()`)
**No flash:** Increase `visual_peak` multiplier (currently 8.0×)
-**A4 not audible:** Increase volume in `test_demo.track`
+**A4 not audible:** Increase volume in `workspaces/test/music.track`
**Empty log:** Ensure demo runs ≥0.5s
## Design Rationale
diff --git a/tools/test_demo.seq b/tools/test_demo.seq
deleted file mode 100644
index b1d17c8..0000000
--- a/tools/test_demo.seq
+++ /dev/null
@@ -1,5 +0,0 @@
-# Minimal timeline for audio/visual sync testing (v2)
-# BPM 120 (set in test_demo.track)
-
-SEQUENCE 0.0 0 "test_loop"
- EFFECT + FlashEffect source -> sink 0.0 16.0
diff --git a/tools/test_demo.track b/tools/test_demo.track
deleted file mode 100644
index 6ae5c67..0000000
--- a/tools/test_demo.track
+++ /dev/null
@@ -1,36 +0,0 @@
-# Minimal drum beat for audio/visual sync testing
-# Pattern: kick-snare-kick-snare, crash every 4th bar
-# Includes NOTE_A4 (440 Hz) at start of each bar for testing
-#
-# TIMING: Unit-less (1 unit = 4 beats at 120 BPM = 2 seconds)
-# Pattern events use unit-less time (0.0-1.0 for 4-beat pattern)
-# Score triggers use unit-less time
-
-SAMPLE ASSET_KICK_1
-SAMPLE ASSET_SNARE_1
-SAMPLE ASSET_CRASH_1
-
-PATTERN drums_basic LENGTH 1.0
- 0.00, ASSET_KICK_1, 1.0, 0.0
- 0.00, NOTE_A4, 0.5, 0.0
- 0.25, ASSET_SNARE_1, 0.9, 0.0
- 0.50, ASSET_KICK_1, 1.0, 0.0
- 0.75, ASSET_SNARE_1, 0.9, 0.0
-
-PATTERN drums_with_crash LENGTH 1.0
- 0.00, ASSET_KICK_1, 1.0, 0.0
- 0.00, ASSET_CRASH_1, 0.85, 0.0
- 0.00, NOTE_A4, 0.5, 0.0
- 0.25, ASSET_SNARE_1, 0.9, 0.0
- 0.50, ASSET_KICK_1, 1.0, 0.0
- 0.75, ASSET_SNARE_1, 0.9, 0.0
-
-SCORE
- 0.0, drums_basic
- 1.0, drums_basic
- 2.0, drums_with_crash
- 3.0, drums_basic
- 4.0, drums_basic
- 5.0, drums_basic
- 6.0, drums_with_crash
- 7.0, drums_basic