Hello everyone. I ran into this problem when building a dynamic music system using the new MetaSound system in Unreal Engine 5.0.3. I found out that when you enable the “Loop” option in the Wave Player node, the timing is off by a few samples, making the timing drift more and more off the longer it loops.
Below are two videos where I demonstrate the problem and a few workarounds I have found. I used a 120 BPM 64 bar metronome track as reference, and tried to loop a 1 bar metronome sample with it. You can hear the timing difference increasing as time goes on in the first video. The samples are identical in my DAW, so all timing differences must have come from metasounds.
The second video demonstrates a few ways to workaround this timing issue, which are:
- Using “On Nearly Finished” to retrigger the Wave Player
- Setting the loop duration using “BPM to Seconds”
- Setting the loop duration using “Get Wave Duration” on the same sample
This implies that the Wave Player doesn’t use “Get Wave Duration” internally to calculate looping duration, which I think is very strange.
Does anyone have insight about this behavior?
Part 1: Where I show the timing offset
Part 2: A few workarounds I’ve found