summaryrefslogtreecommitdiff
path: root/src/tests/test_variable_tempo.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-08 11:13:53 +0100
committerskal <pascal.massimino@gmail.com>2026-02-08 11:13:53 +0100
commit392d03c0c05f24be3210a04d9a50cd9714d1e265 (patch)
tree3c4985879bdf614536020f2061c299ecf442677f /src/tests/test_variable_tempo.cc
parentd2d20763ac61f59187d261bb7d6dedcab525bc54 (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.cc24
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,