From 392d03c0c05f24be3210a04d9a50cd9714d1e265 Mon Sep 17 00:00:00 2001 From: skal Date: Sun, 8 Feb 2026 11:13:53 +0100 Subject: 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 (, ). --- src/tests/test_tracker_timing.cc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src/tests/test_tracker_timing.cc') diff --git a/src/tests/test_tracker_timing.cc b/src/tests/test_tracker_timing.cc index 5c0e9bf..a279c8e 100644 --- a/src/tests/test_tracker_timing.cc +++ b/src/tests/test_tracker_timing.cc @@ -66,7 +66,7 @@ void test_basic_event_recording() { engine.init(); // Trigger at t=0.0 (should trigger initial patterns) - engine.update(0.0f); + engine.update(0.0f, 0.0f); const auto& events = backend.get_events(); printf(" Events triggered at t=0.0: %zu\n", events.size()); @@ -93,17 +93,17 @@ void test_progressive_triggering() { engine.init(); // Update at t=0 - engine.update(0.0f); + engine.update(0.0f, 0.0f); const size_t events_at_0 = backend.get_events().size(); printf(" Events at t=0.0: %zu\n", events_at_0); // Update at t=1.0 - engine.update(1.0f); + engine.update(1.0f, 0.0f); const size_t events_at_1 = backend.get_events().size(); printf(" Events at t=1.0: %zu\n", events_at_1); // Update at t=2.0 - engine.update(2.0f); + engine.update(2.0f, 0.0f); const size_t events_at_2 = backend.get_events().size(); printf(" Events at t=2.0: %zu\n", events_at_2); @@ -126,7 +126,7 @@ void test_simultaneous_triggers() { // Clear and update to first trigger point backend.clear_events(); - engine.update(0.0f); + engine.update(0.0f, 0.0f); const auto& events = backend.get_events(); if (events.size() == 0) { @@ -174,7 +174,7 @@ void test_timing_monotonicity() { // Update through several time points for (float t = 0.0f; t <= 5.0f; t += 0.5f) { - engine.update(t); + engine.update(t, 0.5f); } const auto& events = backend.get_events(); @@ -207,7 +207,7 @@ void test_seek_simulation() { float t = 0.0f; const float step = 0.1f; while (t <= seek_target) { - engine.update(t); + engine.update(t, step); // Simulate audio rendering float dummy_buffer[512 * 2]; engine.render(dummy_buffer, 512); @@ -244,7 +244,7 @@ void test_timestamp_clustering() { // Update through the first 4 seconds for (float t = 0.0f; t <= 4.0f; t += 0.1f) { - engine.update(t); + engine.update(t, 0.1f); } const auto& events = backend.get_events(); @@ -277,7 +277,7 @@ void test_render_integration() { engine.init(); // Trigger some patterns - engine.update(0.0f); + engine.update(0.0f, 0.0f); const size_t events_before = backend.get_events().size(); // Render 1 second of silent audio @@ -289,7 +289,7 @@ void test_render_integration() { assert(backend_time >= 0.9f && backend_time <= 1.1f); // Trigger more patterns after time advance - engine.update(1.0f); + engine.update(1.0f, 0.0f); const size_t events_after = backend.get_events().size(); printf(" Events before: %zu, after: %zu\n", events_before, events_after); -- cgit v1.2.3