Hi everyone,
I’m a music composer, new to UE4. Though I’m experienced with FMOD for creating adaptive music, for an upcoming project we thought of using UE4 native audio capabilities, since it’s a simple retro game with simple non-adaptive music.
However, I would like to implement musics with an intro going seamlessly to the looping part. I find it incredibly difficult to find information on how to do that.
In this 1h22 long video, it seems to be some complexe solutions to achieve that. However, I’m confused, this video is catalogued as “legacy” on the learning ressources page. And there don’t seem to be any up-to-date learning ressource about that. All ressources seems to concern audio rather than music.
I mean… come on! Intro + loop should be an absolutely BASIC functionality that shouldn’t require the use of complexe middleware. It has been used in video game music for ages! Think of The Legend of Zelda main theme, implemented in… 1986!
Ok, so after a bit of investigating, I found out the “Music System in Blueprints” video was legacy because of the beta TimeSynth. The presentation video of TimeSynth promises to be able to do a simple seamless concatenate between two files (which basically is what I want). However, TimeSynth clips only relies on bars and beats. What if my music hasn’t bars and beats (or has some various and progressive BPM changes in it)?
For instance, one of my musics has a slight ralentendo at the end of the intro part, before the looping part. Isn’t there a way to simply say “after my intro, please play my loop”, without having to calculate the mean BPM of my intro and set BPM changes accordingly?..
Go to Unreal online learning site and checkout Ambient and procedural sound design course and Dynamic audio course. Great stuff. Your problem is easily solved with sound cue.
My files are exactly cut for a seamless transition, if they would concatenate correctly. It’s a timing problem, so crossfading won’t resolve the problem (a bad timing is still a bad timing with crossfades).
It seems there’s some overcomplicated solutions using Quantz clocks or TimeSynth, but I didn’t figure it out yet (and it always leans on bars and beats, which is irrelevant for my case, I only want a file to follow another).
It’s a SHAME a 1986 chiptune music behavior couldn’t be replicated with native simple tools in 2021…
It does seem to work, thanks! I still have to test if the delay is consistant in runtime.
EDIT: though it works when simulating the cue, it doesn’t work at all in-game. I placed the cue directly in the level, there’s probably a delay before the intro starts to play, so the loop part begins to early.
I eventually find a trick: when adding a second delay between the mixer and the output, each part routed to the mixer seem to be cached properly in time. The fun part is that this delay can be set to virtually 0 (like 0.01) for the trick to work, but not 0!
I still have a little pop when transitioning, but that’s not a timing problem anymore, it’s coming from the intro part stopping abruptly (since it’s not a real concatenating). Baking a faded out release tail at the end of the intro should definitively resolve the problem.
Sadly all solutions did not work with our intro and looping music files. So we had to use a different approach, which works a lot better in our view as blend between the files is used (basically sine fading curves, so far I know they are very famous in the audio world). Additionally we used a very small blending time (200ms) as our files where also perfectly cut, this allowed us to smoothly blend the intro and the looping part. And we use two audio components.