Creating groups of dynamically selected music playlists and allowing users to customize music playlist...

FMOD Studio doesn’t currently have a built-in “key off on silence” feature.

Given that you also want to give the user control over which specific songs play, the easiest option is to make use of programmer sound modules. Programmer sound modules allow you to specify a particular sound file to play in your game’s code when triggered, and so give you the greatest possible control over which sound files do and don’t play. This method would, however, require you to keep track of whether or not a song has ended in your game’s code. More information about programmer sound modules can be found here: http://www.fmod.org/documentation/#content/generated/FMOD_STUDIO_PROGRAMMER_SOUND_PROPERTIES.html

If you would prefer to use FMOD Studio’s logic system, one possible workaround is as follows. Place each playlist (or even each individual piece of music) into its own multi sound module at a different point on the same audio track. Then, create a set of transition markers at timeline position 00:00:000 that moves the timeline cursor to a different multi sound modules depending on your parameter values. Next, create a sidechain effect module in the master track of your event. Add a new parameter, “volume” to the event, and modulate the value of that parameter using a sidechain modulator such that the value of the parameter drops to its minimum when the event falls silent. Create a loop region within one of your multi sound modules with the parameter condition that it only loops when the parameter value is at its minimum. Copy an instance of this loop region over each and every sound module in the event. This will result in Studio only escaping a loop region and selecting a new song when all playing songs have faded away.

You could potentially even combine these two approaches by using programmer sound modules in place of multi sound modules. This would allow you (for example) fine control of which songs are and aren’t included in each playlist, while still leaving the selection of playlists up to Studio.

2 Likes