Thank you for sharing the code and additional information.
The use of Unity’s Update()
function is frame-rate dependent, which means it might be introducing a tiny delay and the exact timing can vary between frames.
Instead of relying on Unity’s Update()
function to check the beat every frame, you could consider using Timeline callbacks to sync the beats more precisely. These callbacks are tied directly to the FMOD DSP clock, so you can use them to handle downbeat events with more accuracy.