Back


Last update: 2025-05-29

FMOD

While Wwise has a wealth of on-line self-teaching resources, FMOD information isn't quite consistent. I really like the way information is presented in the Wwise Certification online lessons, so I've created some lessons in the same style to learn FMOD. I've also splitted them in two lesson sets, 101 and 201 following the Wwise style, being the 101 about sound design and basic concepts, and focusing on interactive music in the 201.

Index

Requirements

IMPORTANT: Due to executable permission problems with Unreal binaries on Mac, a new version of this tutorial is under development replacing the previous Shooter Game by Unity's example FPS Microgame. THE CONTENT OF THESE TUTORIALS IS DEPRECATED WHILE THIS NOTICE IS STILL VISIBLE, IT WILL BE REMOVED AFTER ALL CONTENT IS UPDATED. Sorry for the inconvenience.


We will use a modified version of the FPS Microgame sample developed by Unity. You can download both executable files here:

An online version is also available here, you can use it as a reference.


The tutorials are based on FMOD Studio 2.3, you can grab it from FMOD's site. Please, note that you'll need an FMOD account to download it.


The course files are also required. The course files aren't ready yet, meanwhile you can download the example sounds here:

Play the game first to get familiar with it. There's an option at the beginning of the game that shows the controls. In order to recreate the game sound in FMOD, we must delete the original soundbanks, which are located at My project_Data/StreamingAssets within the game's folder or app package (in Windows and Mac, respectively).


201: Interactive Music

Lesson 1: Random Re-sequencing

We're going to add some music to the game. We'll reuse a modified version of the Wwise 201 Cube music and will try to integrate it using FMOD tools. We'll start by randomly re-sequenced music.

  1. Create a Music folder and add the Gameplay event as a 2D Timeline.

    Sample Image

  2. Drag the Explore-Theme to the Audio 1 track.

    Sample Image

  3. We'll now set a Tempo Marker so we can inform FMOD that this track is 4/4 138 BPM. Right click at the beginning of the Logic Tracks zone and choose Add Tempo Marker.

    Sample Image

  4. Write down 138 for the tempo.

    Sample Image

  5. We can now change the timeline to use bars and beats instead of seconds, so we'll be able to easily see the them in the Timeline time scale and snap between beats.

    Sample Image

  6. We'll add a new track to add the Explore-Arpeggio, Explore-Piano and Explore-Rythm music segments.

    Sample Image

  7. Add a Multi Instrument to the track.

    Sample Image

  8. Now drag the 3 audio files into the Multi Instrument or into its playlists (directly dragging over the Multi Instrument in the Timeline track might be unavailable under certain circumstances).

    Sample Image

  9. Look how all tracks have a different duration. This is an issue for Multi Instruments, so we'll need to remove all possible empty spaces, thus cutting the length of the tracks. Also all tracks need to have the same pre-entry space so we can adjust the loop point correctly, so I modified the original ones a little bit so they fit well.

    Sample Image

  10. Drag the right side of the Multi Instrument clip in the track until all empty space (diagonal lines at the end) is clipped out.

    Sample Image

  11. Finally we can add the Explore-Bridge to our structure. Create a new audio track and drag the audio file in. Adjust it to the exit point of the Multi Instrument tracks.

    Sample Image

  12. We'll want the Multi Instrument to loop randomly throughout its tracks. Right-click over the Logic Tracks space and choose Add Loop Region to create a new loop region.

    Sample Image

  13. Adjust the loop region from the entry point of the Multi Instrument to its exit point. A loop region will play any clip within. Note that the Explore-Theme pre-entry will played each time the Multi Instrument loops.

    Sample Image

  14. Now we'll want this loop region to randomly exit and continue with the Explore-Bridge part. Select the Multi Instrument so you can set the Probability to ON for its Transition Conditions and click the Change value and drag the mouse down until you set a 50% probability. This way, each time we reach the end of the loop, we've got a 50% probability of exiting the loop or either repeat it again.

    Sample Image

  15. Finally we'll want to go back to the Explore-Theme. As it has a pre-entry bar, we'll do a small trick. Add it at the end and align its entry point with the Explore-Bridge exit point.

    Sample Image

  16. Now create a new loop region. You can drag it up and down to move between Logic Tracks.

    Sample Image

  17. Drag it below and adjust it so it catches all the post-exit sound of the Explore-Bridge and drag the beginning at the same point the Explore-Theme track ends. This way, we should be looping after all the Explore-Bridge decay is mixed with the Theme, then we'll continue with our playlist.

    Sample Image

  18. Assign the Event to the Master soundbank as usual. We can now build the soundbanks, then go to Unreal and play the map to listen to the music.

Lesson 2: Random Re-orchestration

Now we'll try re-orchestration using the Combat-A and Combat-AB-Rythm music assets.

  1. In order to try it, we'll rename the previous example as Gameplay Old.

    Sample Image

  2. And we'll add a new Gameplay event with 2D Timeline.

    Sample Image

  3. We'll start dragging all audio files from a given instrument to a single FMOD audio track. We'll create a Multi Instrument for most tracks either having variations or not. Note that track variations have the same instrument name but different numbers, like Combat-A-Bass1 and Combat-A-Bass2.

    Sample Image

  4. In the Multi-Instrument we'll add a Silence Instrument. This instrument lets us add a silent track, so this we'll allow that some of them might stop in any loop. In order to use it, we'll need to adjust the durantion to, at least, the same duration of the instrument.

    Sample Image

  5. In the Multi-Instrument we'll add a Silence Instrument. This instrument lets us add a silent track, so this we'll allow that some of them might stop in any loop. In order to use it, we'll need to adjust the durantion to, at least, the same duration of the instrument.

    Sample Image

  6. Do the same for all tracks. Adjust the time settings by adding a Tempo Marker at the beginning (right-click the Logic Tracks zone and choose Add Tempo Marker)

    Sample Image

  7. Add the rythm tracks at the end. You'll notic they're just 4 measures long, so we'll have to duplicate them by copying & pasting.

    Sample Image

  8. Then we'll set up a new Loop Region that fits the 8 first measures. We can now play the event and listen to the random variations we can get each loop.

    Sample Image

  9. In order to use it in the game, assign the Event to the Master soundbank as usual.

    Sample Image

  10. We can now build the soundbanks, then go to Unreal and play the map to listen to the new music.

Lesson 3: Random Mixed Method

We'll now try combining different loops and randomized subtracks to get random mixed-method music.

  1. We'll start by duplicating the rythm clips. Select all 6 clips using a rectangular selection (left click over the track and drag).

    Sample Image

  2. Copy them next to the previous ones and adjust the Loop Region to fit the 16 measures.

    Sample Image

  3. Now we'll add all the tracks as we did in the previous lesson. We can drag them to new tracks or use a single track. In this case, we'll have to remove the cross-fade settings which are automatically placed whenever overlapping occurs while moving a clip over another one in the same track.

    Sample Image

  4. In order to complete the structure, we'll need to add the Bridge tracks. They've got 1 bar of pre-entry and 4 tracks, 3 variations for the guitar and 1 with the remaining stems. We'll add a new Loop Region to include this track.

    Sample Image

  5. Finally we adjust the probability for the first loop so it can randomly exit to the bridge.

    Sample Image

  6. Now we can try this into the game, just rebuild the soundbank and play the map in Unreal!

Lesson 4: Interactive Re-orchestration

In this lesson we're going to use a different guitar track depending on the player health.

  1. Delete the current guitar tracks (Audio 3 and Audio 14 in this example).

    Sample Image

  2. Add 3 audio tracks to hold the guitar tracks again.

    Sample Image

  3. We'll recover now the Combat-A and Combat-B guitar tracks. We can find them in the Assets tab. Drag them to the newly created tracks and adjust their duration.

    Sample Image

  4. Now add the bridge versions behind.

    Sample Image

  5. We now need to create the game parameter we need to choose the tracks to be used. Click on the main menu Create option and choose Add parameter...

    Sample Image

  6. The parameter is PlayerHealth and it's a continuous parameter with values between 0 and 100. Of course 100 is the default value and the scope must be set to Global.

    Sample Image

  7. Now select the first guitar track and we'll create and Automation for the track fader. Right-click on the fader and choose Automation.

    Sample Image

  8. Click Add curve and choose PlayerHealth.

    Sample Image

  9. Now you'll see the curve editor. You can create nodes by clicking over the line and drag them wherever you want. We'll adjust the values so that volume for this track is up between 50 and 80 PlayerHealth units.

    Sample Image

  10. On the right panel you'll see the game parameter. This will allow you to change it and preview the sound for any possible value. At the same time, we now find a foldable subtrack below our guitar tracks that shows the track volume according to the PlayerHealth value.

    Sample Image

  11. Repeat the previous steps for the other 2 guitar tracks. We'll use track 2 for values between 20 and 50 and below 2 respectively.

    Sample Image

  12. Try this into the game, just rebuild the soundbank and play the map in Unreal. You can lose health by shooting the rocket launcher very close to the character. Also you have health refill pickups with a cross icon troughout the map. Listen to guitar tracks changing according to your character's health.

Lesson 5: Interactive Re-sequencing

Finally we're going to crossfade between Explore and Combat music versions, and we'll also introduce a Defeated segment to be played when our character is defeated.

  1. We'll first copy & paste all the Gameplay sequence back into the Gameplay Old event used by the Explore music. We'll start with the Logic Tracks and the 3 first track clips.

    Sample Image

  2. Now copy the remaining tracks by selecting the full track, so we'll be also copying their Automation setup.

    Sample Image

  3. Paste them below the 3 first tracks in Gameplay Old.

    Sample Image

  4. And shift the tracks to adjust their starting point.

    Sample Image

  5. We can get rid of the old Gameplay event.

    Sample Image

  6. And restore the Gamplay Old event to its previous Gameplay status, so remove the " Old" part.

    Sample Image

  7. We'll now define the parameter we'll use to decide whether our current context is Explore or Combat. Click on the main menu Create option and choose Add parameter...

    Sample Image

  8. Let's define the CombatLevel parameter, which is a Global continuous parameter that ranges from 0 to 10.

    Sample Image

  9. Now we'll need to create the appropiate Transition and Destination Zones so we'll jump between each depending on this parameter. Right-click the empty logic tracks space and choose Add Destination Region.

    Sample Image

  10. The Region A will appear. Adjust it to the first 16 measures of the combat music.

    Sample Image

  11. Now we'll create a Transition Region to this new region so we'll instruct FMOD what's the region that can jump to Region A. Right-click the empty logic tracks space again and choose Add Transition Region To > Regions > Region A.

    Sample Image

  12. Adjust the Transition Region so it fits the Explore Theme and the Multi-Instrument, leaving the 1st pre-entry measure out.

    Sample Image

  13. The default behavior of Transition Regions is jumping to the beginning of the Destination Region, but this music is designed with the same tempo and harmony for both Combat and Explore sections, so we'll use the Relative setting in the Transition Conditions panel.

    Sample Image

  14. Now we'll need to set a condition for the transition to happen. Click the Add Condition button and choose Add Parameter Condition > CombatLevel

    Sample Image

  15. Adjust the CombatLevel value range to 5.0-10.0. This means that when CombatLevel is above 5 it will jump to the combat clips.

    Sample Image

  16. You can now play the event starting and the beginning and try changing the CombatLevel value using the right panel. When the value goes beyond 5, the music should skip to the combat clips. However the transition will be immediate, so it will be a bit harsh. Let's try to soften it a little bit!

    Sample Image

  17. Right-click the Transition Region and choose Add Transition Timeline.

    Sample Image

  18. FMOD will join the Transition Region and Destination Region with an in-between gap. Now, we can choose what to do in this transition time (and, of course, adjust this time, which at this zoom level is very long)

    Sample Image

  19. We'll first adjust the Transition Timeline duration to 1 measure by dragging its right-side to the left and reducing zoom.

    Sample Image

  20. Now drag the left dashed rectangle to the right and the right dashed rectangle to the left. This will create a crossfade zone between the two tracks.

    Sample Image

  21. With a bit of patience, we'll do the same with all the tracks.

    Sample Image

  22. We can hide this Transition Timeline, so it doesn't disturb us while we continue edition. Just right-click over the Transition Region and choose Hide Transition Timeline.

    Sample Image

  23. We can also transition in the last Explore-Theme clip we left for the Bridge-Theme mixing part by the end. Copy and paste the transition we've just created and adjust it. You don't need to fit it in the loop region, we don't care about what's happening outside because we'll never reach that part. We've also copied the Transition Timeline of the Transition Region we've copied, the small circle at the top-right side of the rectangle is telling us a Transition Timeline is defined for that region.

    Sample Image

  24. Now we'll have to do the same to transition from the Explore-Bridge clip to the Combat-Bridge one. Create a destination region fitting the Combat-Bridge clip and copy one of the previous transition regions. This way we'll be copying the Transition Timeline too. We just need to change the destination for the copied Transition Region.

    Sample Image

  25. We can change the destination for this Transition Region by either clicking the destination option in the Transition Conditions panel and choosing Regions > Region B...

    Sample Image

  26. Or by right-clicking the Transition Region and choosing Set Destination to > Regions > Region B...

    Sample Image

  27. Now we need to do everything in the opposite direction. We need to transition from the Combat clips to the Explore ones when CombatLevel is below 5. I'll leave this as an exercise for you, this is how the result should look like (combat main section will directly jump to Explore-Theme and Combat-Bridge must jump to Explore-Bridge) Copying and pasting the Transition Regions will save a lot of time, you'll just need to change the destinations and the condition, CombatLevel must be in the 0.00-5.00 range:

    Sample Image

  28. Finally let's see another way to transition, the Magnet Region. Magnet Regions work the opposite Transition Regions do. We can understand it as "Jump to this region if the conditions met". We'll use it to add a Defeated segment when PlayerHealth goes down to 0. Import the file into the Timeline.

    Sample Image

  29. Right-click the Logic Tracks space over the clip and choose Add Magnet Region.

    Sample Image

  30. Adjust the Magnet Region to fit the clip.

    Sample Image

  31. Add the condition for the Magnet Region. Player Health must be 0.

    Sample Image

  32. Now the Magnet Region will play looped when Player Health is 0. We can stop it by adding a Sustain Point at the end of the click. Right-click the Logic Tracks zone and choose Add Sustain Point.

    Sample Image

  33. In the Sustain Point's Conditions panel add the condition of PlayerHealth being 0. This is the condition to keep the play cursor hooked in the Susatin Point. If the value was higher due to a player character respawn, then we'll get out of both the Sustain Point and the Magnet Region and follow the Timeline.

    Sample Image

  34. Now we'll just need to tell what to do after the player character is respawned. We'll want to jump to the beginning of the Timeline, so we'll add a new Marker right at the beginning by right-clicking the Logic Tracks zone and choose Add Destination Marker.

    Sample Image

  35. And at the end of the Death clip, we'll add a Transition To > Markers > Marker A.

    Sample Image

  36. Finally! We've got the resequencing behavior complete. Try this into the game, just rebuild the soundbank and play the map in Unreal. As there are no enemies in the map, I'm sending a CombatLevel value of 10 when you're using the rocket launcher and back to 0 when you use the Assault Rifle. You can lose health by shooting the rocket launcher very close to the character.