From c79ebff06ae74135c5f67ecc01d5bb55aeb5eda9 Mon Sep 17 00:00:00 2001 From: skal Date: Mon, 16 Feb 2026 17:04:41 +0100 Subject: fix: calculate beat_phase for FlashEffect and refactor uniforms - seq_compiler.py: Calculate beat_phase from beat_time (was hardcoded 0.0f) - Refactor: Replace CommonPostProcessUniforms with UniformsSequenceParams - Remove duplicate struct definition in post_process_helper.h - Update all CNN effects and tests to use unified uniform struct - Fixes FlashEffect showing solid white instead of flashing to beat Co-Authored-By: Claude Sonnet 4.5 --- tools/seq_compiler.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'tools/seq_compiler.py') diff --git a/tools/seq_compiler.py b/tools/seq_compiler.py index 6b72ebd..3b8d126 100755 --- a/tools/seq_compiler.py +++ b/tools/seq_compiler.py @@ -516,7 +516,8 @@ void RenderTimeline(WGPUCommandEncoder encoder, float time, int width, int heigh float beat_time, float audio_intensity) { Sequence* seq = GetActiveSequence(time); if (seq) { - seq->preprocess(time, beat_time, 0.0f, audio_intensity); + float beat_phase = fmodf(beat_time, 1.0f); + seq->preprocess(time, beat_time, beat_phase, audio_intensity); seq->render_effects(encoder); } } @@ -584,7 +585,8 @@ void RenderTimeline(WGPUSurface surface, float time, int width, int height, seq->set_sink_view(g_sink_view); // Update uniforms via preprocess - seq->preprocess(time, beat_time, 0.0f, audio_intensity); + float beat_phase = fmodf(beat_time, 1.0f); + seq->preprocess(time, beat_time, beat_phase, audio_intensity); WGPUCommandEncoder encoder = wgpuDeviceCreateCommandEncoder(ctx->device, nullptr); -- cgit v1.2.3