diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-07 08:22:12 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-07 08:22:12 +0100 |
| commit | 91e3215b09c458c46eba4cccce602d6917e34923 (patch) | |
| tree | 2194ef37f54c7da633962abf0f32c73c6f1e2092 /src/generated/test_demo_timeline.cc | |
| parent | 036114d12d024273e752ffbb68a95a04ee34d4fa (diff) | |
feat(test_demo): Add audio/visual sync debug tool with tempo testing
Implements minimal standalone executable for debugging audio/visual
synchronization and variable tempo system without full demo complexity.
Key Features:
- Simple drum beat (kick-snare) with crash landmarks at bars 3 and 7
- NOTE_A4 (440 Hz) reference tone at start of each bar for testing
- Screen flash effect synchronized to audio peaks
- 16 second duration (8 bars at 120 BPM)
- Variable tempo mode (--tempo) alternating acceleration/deceleration
- Peak logging (--log-peaks) for gnuplot visualization
Command-line options:
- --help: Show usage information
- --fullscreen: Run in fullscreen mode
- --resolution WxH: Set window resolution
- --tempo: Enable tempo variation test (1.0x ↔ 1.5x and 1.0x ↔ 0.66x)
- --log-peaks FILE: Export audio peaks with beat timing for analysis
Files:
- src/test_demo.cc: Main executable (~220 lines)
- assets/test_demo.track: Drum pattern with NOTE_A4
- assets/test_demo.seq: Visual timeline (FlashEffect)
- test_demo_README.md: Comprehensive documentation
Build: cmake --build build --target test_demo
Usage: build/test_demo [--help] [--tempo] [--log-peaks peaks.txt]
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/generated/test_demo_timeline.cc')
| -rw-r--r-- | src/generated/test_demo_timeline.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/generated/test_demo_timeline.cc b/src/generated/test_demo_timeline.cc new file mode 100644 index 0000000..75c5fe6 --- /dev/null +++ b/src/generated/test_demo_timeline.cc @@ -0,0 +1,15 @@ +// Auto-generated by seq_compiler. Do not edit. +#include "gpu/demo_effects.h" +#include "gpu/effect.h" + +float GetDemoDuration() { + return 16.000000f; +} + +void LoadTimeline(MainSequence& main_seq, WGPUDevice device, WGPUQueue queue, WGPUTextureFormat format) { + { + auto seq = std::make_shared<Sequence>(); + seq->add_effect(std::make_shared<FlashEffect>(device, queue, format), 0.0f, 16.0f, 0); + main_seq.add_sequence(seq, 0.0f, 0); + } +} |
