I’ve been wondering -and trying- to find the best way to make a radio ‘station’ within FMOD. I’ve been trying to make something similar to what they have in Fallout where they’ll play some songs, then the DJ will speak but what he says will also change on the progression of the game.
I’ve tried having all the music in the timeline and have the songs be chosen randomly with transitions that only trigger on a percentage, but this is highly ineffective and would get out of hand if there were a lot of songs.
After that, I was thinking about having multi-sounds with all the music, but I can’t find a way to have the next song play without cutting off the end of one song or waiting too long before changing. Also, there wouldn’t really be a way to make the VO work with its own logic.
I was thinking about nesting the music and having multi-sounds randomise them but it still cuts too early or too late.
Any suggestions on this?
It seems so easy when you see it in a game but very hard when actually making it.
Thanks in advance,
Unfortunately, Studio does not feature an equivalent of Designer’s “key off on silence” feature, meaning that there is no easy way to achieve the specific behaviour you describe in FMOD Studio. It is possible, but it requires some effort to achieve. I’ve described a few methods that might help below.
If you want the stitching to be truly gapless, your only options are to use programmer sound modules, or to lay everything out on the timeline.
Using programmer sound modules require you to monitor and control the state of your radio using your game’s code. This method offers a great degree of flexibility, but also requires that the work of setting up the system be handled entirely by your game’s audio programmer.
As you’ve observed, laying everything out on the timeline takes a great deal of time, and is hard to maintain, especially if the number of audio files in the event is large. You can potentially reduce the maintenence costs of such an event by reducing the number of logic points, however; Rather than having a logic point at the end of every single sound module, you can place a single logic point at a specific point on the timeline, and each single sound module can end with a transition marker to that logic point. Again, though, this only reduces the work required, rather than eliminating it entirely.
If you don’t need your radio broadcast to be totally gapless, and can tolerate short silences of up to a few hundred milliseconds, there’s another option. If you place a sidechain effect on the master track of your radio event, and add a parameter to that same event, and add a sidechain modulator to that parameter, and set that modulator’s input to be the sidechain effect on the master track, you will have created an event with a parameter whose value depends on whether there is audible content in the master track of the event. If you then set up (for example) a 500 ms loop region on a multi sound module, and give that loop region a parameter condition that ceases being met when the event falls silent… Well, with a little tweaking, it should do what you want.