diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-08 11:13:53 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-08 11:13:53 +0100 |
| commit | 392d03c0c05f24be3210a04d9a50cd9714d1e265 (patch) | |
| tree | 3c4985879bdf614536020f2061c299ecf442677f /src/tests/test_variable_tempo.cc | |
| parent | d2d20763ac61f59187d261bb7d6dedcab525bc54 (diff) | |
refactor(audio): Finalize audio sync, update docs, and clean up test artifacts
- Implemented sample-accurate audio-visual synchronization by using the hardware audio clock as the master time source.
- Ensured tracker updates and visual rendering are slaved to the stable audio clock.
- Corrected to accept and use delta time for sample-accurate event scheduling.
- Updated all relevant tests (, , , , ) to use the new delta time parameter.
- Added function.
- Marked Task #71 as completed in .
- Updated to reflect the audio system's current status.
- Created a handoff document: .
- Removed temporary peak log files (, ).
Diffstat (limited to 'src/tests/test_variable_tempo.cc')
| -rw-r--r-- | src/tests/test_variable_tempo.cc | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/tests/test_variable_tempo.cc b/src/tests/test_variable_tempo.cc index e27e7d6..4fc81e3 100644 --- a/src/tests/test_variable_tempo.cc +++ b/src/tests/test_variable_tempo.cc @@ -44,7 +44,7 @@ void test_basic_tempo_scaling() { for (int i = 0; i < 10; ++i) { float dt = 0.1f; // 100ms physical steps music_time += dt * tempo_scale; - engine.update(music_time); + engine.update(music_time, dt * tempo_scale); } // After 1 second physical time at 1.0x tempo: @@ -64,7 +64,7 @@ void test_basic_tempo_scaling() { for (int i = 0; i < 10; ++i) { float dt = 0.1f; music_time += dt * tempo_scale; - engine.update(music_time); + engine.update(music_time, dt * tempo_scale); } // After 1 second physical time at 2.0x tempo: @@ -84,7 +84,7 @@ void test_basic_tempo_scaling() { for (int i = 0; i < 10; ++i) { float dt = 0.1f; music_time += dt * tempo_scale; - engine.update(music_time); + engine.update(music_time, dt * tempo_scale); } // After 1 second physical time at 0.5x tempo: @@ -123,7 +123,7 @@ void test_2x_speedup_reset_trick() { tempo_scale = fminf(tempo_scale, 2.0f); music_time += dt * tempo_scale; - engine.update(music_time); + engine.update(music_time, dt * tempo_scale); } printf(" After 5s physical: tempo=%.2fx, music_time=%.3f\n", tempo_scale, @@ -142,7 +142,7 @@ void test_2x_speedup_reset_trick() { for (int i = 0; i < 20; ++i) { physical_time += dt; music_time += dt * tempo_scale; - engine.update(music_time); + engine.update(music_time, dt * tempo_scale); } printf(" After reset + 2s: tempo=%.2fx, music_time=%.3f\n", tempo_scale, @@ -183,7 +183,7 @@ void test_2x_slowdown_reset_trick() { tempo_scale = fmaxf(tempo_scale, 0.5f); music_time += dt * tempo_scale; - engine.update(music_time); + engine.update(music_time, dt * tempo_scale); } printf(" After 5s physical: tempo=%.2fx, music_time=%.3f\n", tempo_scale, @@ -201,7 +201,7 @@ void test_2x_slowdown_reset_trick() { for (int i = 0; i < 20; ++i) { physical_time += dt; music_time += dt * tempo_scale; - engine.update(music_time); + engine.update(music_time, dt * tempo_scale); } printf(" After reset + 2s: tempo=%.2fx, music_time=%.3f\n", tempo_scale, @@ -235,7 +235,7 @@ void test_pattern_density_swap() { printf(" Phase 1: Sparse pattern, normal tempo\n"); for (float t = 0.0f; t < 3.0f; t += 0.1f) { music_time += 0.1f * tempo_scale; - engine.update(music_time); + engine.update(music_time, 0.1f * tempo_scale); } const size_t sparse_events = backend.get_events().size(); printf(" Events during sparse phase: %zu\n", sparse_events); @@ -245,7 +245,7 @@ void test_pattern_density_swap() { tempo_scale = 2.0f; for (float t = 0.0f; t < 2.0f; t += 0.1f) { music_time += 0.1f * tempo_scale; - engine.update(music_time); + engine.update(music_time, 0.1f * tempo_scale); } const size_t events_at_2x = backend.get_events().size() - sparse_events; printf(" Additional events during 2.0x: %zu\n", events_at_2x); @@ -260,7 +260,7 @@ void test_pattern_density_swap() { const size_t events_before_reset_phase = backend.get_events().size(); for (float t = 0.0f; t < 2.0f; t += 0.1f) { music_time += 0.1f * tempo_scale; - engine.update(music_time); + engine.update(music_time, 0.1f * tempo_scale); } const size_t events_after_reset = backend.get_events().size(); @@ -304,7 +304,7 @@ void test_continuous_acceleration() { tempo_scale = fmaxf(min_tempo, fminf(max_tempo, tempo_scale)); music_time += dt * tempo_scale; - engine.update(music_time); + engine.update(music_time, dt * tempo_scale); // Log at key points if (i % 50 == 0) { @@ -354,7 +354,7 @@ void test_oscillating_tempo() { float tempo_scale = 1.0f + 0.2f * sinf(physical_time * 2.0f); music_time += dt * tempo_scale; - engine.update(music_time); + engine.update(music_time, dt * tempo_scale); if (i % 25 == 0) { printf(" t=%.2fs: tempo=%.3fx, music_time=%.3f\n", physical_time, |
