I’ve been doing some tests in MetaSounds to build a system which plays and “Intro stinger” then transitions to a loop, or to an specific “Start Time” of that loop.
If “Start Time” is = 0 (default) it works perfectly, but when setting a different “Start Time”, the first time the transition plays there is a gap / delay / latency … then, further triggers seem to work fine.
I’ve tried the following cases with same results:
Intro (with overlapping tail) transitions to Loop “On Cue Point”.
Intro (without tail) transitions to Loop “On Finished”.
Loop start time is set 1 second in advance the play sequence starts.
Is this supposed to be like so, or am I missing something?
The “On Cue Point” trigger feature + a ‘latency free’ “Start Time” would be really awesome for building complex transition systems within MetaSounds.
I’m no expert and haven’t used the OnCuePoint output, but I think you should try OnNearlyFinished instead. When most people run into small gaps between their sounds, it is because they are using the OnFinished output, and I imagine OnCuePoint works very similarly.
The OnNearlyFinished output triggers on the next-to-last audio render block before the sound ends, meaning it has just enough time to queue up the next play trigger to happen seamlessly in the next audio render block.
Perhaps someone else can give a more precise technical explanation, but give it a go and report back!
I’ve done the test using “On Nearly Finished” and got same results … Works fine with Start Time = 0 but there is a gap when set it to land in a different spot in the loop …
Maybe I’m completely wrong, but due the behaviour seems “seeking the start time” happens at the same time as the “Play” and that creates the latency.
I’m assuming it works fine after the first play because it has that start point in cacheed or something …
Actually, if when it starts working properly, I go to the .asset config of the loop, and change + save a different “Loading Behaviour Override”, the gap occurs again the first time I play it.
Only if I select “Force Inline” it works fine … but I don’t have information enough on that setting to determine if this is a good workaround to be applied to all loops in the project (I’d say it isn’t :P)
Hm, interesting. I agree that you probably shouldn’t have to dig into the settings.
Have you heard of the Unreal Slackers Discord server? Some of the UE Audio team members are in there frequently to answer questions. There’s also a Facebook group called Unreal Engine Audio Tips & Tricks where they frequently respond to troubleshooting questions.
For fast replies, those are your best options—unless someone else happens to be browsing the forums and can chime in!