Thank you for the detailed explanation.
An option may be to add markers for the off beats which will trigger the FMOD Engine | Studio API Reference - FMOD_STUDIO_TIMELINE_MARKER_PROPERTIES, which also has the position
property.
Correct, the event timeline position is based on the studio update period of 20ms
. You could try improve this update time by reducing the FMOD Engine | Core API Reference - System::setDSPBufferSize which can be set in the FMOD integration settings:
There is also the option of using the FMOD Engine | Core API Reference - ChannelControl::getDSPClock. A user has created a created a script using the DSP Clock
here: Perfect Beat Tracking in Unity? - #28 by bloo_regard_q_kazoo.
Hope this helps!