Technically, yes. But this depend on how the audio is handled by the engine. If I remember correctly, for example, Godot Engine have a node : SamplePlayer. A object for playing short sound, like SFX. Calling "sample_player.play("sound")" don't just "play" the sound. It query a sample ID form the audio server, then the it loads the sound data in the buffer. When the buffer is filled entirely, or when the end of the data is reached, the audio server play it with a given latency configured in the engine settings. For decrease the latency on the "play" to the speaker, you need to tweak these two options. But, using a too low latency (less than 50ms), the sounds glitch and it's the same for the buffer.zorg wrote:In games that use music as a game mechanic, technically, you won't have latency between calling :play on a Source and it actually playing; the latency is between the input and the queried position returned of the playing music track. (It's still running after the position has been queried, so it'll never be perfect)
They want to re-work the audio system in Godot Engine. Maybe later I'll reuse it for a rhythm game. But for now it's not suitable for this.
And for note synchronization, input delay & offset, visual offset, etc, I already know that. I play a lot at osu!, a game that I love and I'm waiting for the Lazer update (which is the update where osu!, normally, become open source).