From 6c02074f22e941942b32e665e0c9c73587ab4a7b Mon Sep 17 00:00:00 2001 From: skal Date: Mon, 16 Feb 2026 22:56:12 +0100 Subject: 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 --- cmake/DemoExecutables.cmake | 10 +++++----- doc/WORKSPACE_SYSTEM.md | 2 -- doc/test_demo_README.md | 8 ++++---- tools/test_demo.seq | 5 ----- tools/test_demo.track | 36 ------------------------------------ 5 files changed, 9 insertions(+), 52 deletions(-) delete mode 100644 tools/test_demo.seq delete mode 100644 tools/test_demo.track 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 -- cgit v1.2.3