How Can I make sound waves in the sequencer play immediately when their tracks are hit and stay in sync?

I’ve got a bunch of sound waves in a level sequence. Some are stacked? Some are by themselves. I have some where the volume is keyframes to go up/down, and some with tracks that just start/stop.

Say I have track an and b. Track a starts at the beginning of the sequence and goes forever, track b starts a few seconds in. Often when playing the sequence and I hit track b it will start a few frames late and be out of sync with track a. If I pause and play the sequence then they are in sync again.

Usually after playing b at least once it will start properly and remain in sync. This leads me to think it’s some sort of caching issue where the sound isn’t loading quickly enough and just starts playing late.

I’ve messed with some project setting and CVars, but haven’t had any success in reliably fixing the issue. I am hoping someone else has a better understanding of everything and can point me in the right direction on what I should be doing to best eliminate this problem!

For extra context, I will be rendering this audio out via the mrq, so I don’t need it to be extremely performant, I.e. I’d be fine if everything was loaded during the render to get it to work properly.

Thanks!

Try manually triggering a “warm-up” of the sound asset before it’s actually needed in the sequence. You can do this using a hidden cue that starts off-screen or is muted, just to force the engine to load it into memory early. It’s kind of a brute-force method, but surprisingly effective when timing matters.

Also, checked if the sound waves are set to Stream or Decompress on Load

Thanks for the reply!

If I understand correctly I could have put an audio track containing the soundwave I want to play a little bit before the track that should play, and just set it’s volume to 0 and it should still try to load? I’ll try it out pretty soon!

Do you know where I would find the Steam or Decompress on Load settings? I don’t see that in the details for the sound wave asset itself. There is a “Loading Behavior Override” with a dropdown and some options. It says those will only work if stream caching is enabled, which I also am struggling to find anywhere to enable or disable. haha

I am in Unreal 5.5 by the way.

Preload Strategy

  1. Utilize the “Loading Behavior Override”: In Unreal Engine 5.5, the Loading Behavior Override setting for a USoundWave asset determines how the audio data is loaded. To make sure immediate playback, you can set this to Force Inline, which forces the audio to be fully loaded into memory, bypassing streaming.

Follow this,

  • Open Sound Wave asset
  • Locate the Loading Behavior Override dropdown.
  • Select Force Inline.

This setting is only effective if stream caching is enabled in your project.

  1. Enable Stream Caching: This one allows Unreal Engine to manage audio data more efficiently
  • Go to Edit > Project Settings.
  • Navigate to the Audio section.
  • Under Stream Caching, enable the feature.
  1. Prime Sound Waves Manually: make sure the sound wave is loaded before playback
  • In level sequence, add a hidden or muted version of the sound wave a few seconds before the actual playback point.

  • This warm-up cue forces the engine to load the asset into memory, reducing the chance of a delay

Or you can do using MetaSounds

Good Luck..