Vertical Re-Orchestration example
Exporting stems from a DAW
Setting up the music event in FMOD Studio and importing the stems
Setting up a FMOD Parameter to control the volume of the stems
Implementing the music Event in a Game Engine
Home » Game Audio Tutorials » FMOD Tutorials » FMOD Studio Tutorials » Vertical Re-Orchestration in FMOD Studio
Vertical Re-Orchestration in FMOD Studio
Vertical Re-Orchestration is a game audio technique often used when writing adaptive music.
The idea here is to export the piece a music in several stems, which all run simultaneously and can be switched on and off or have a volume automation depending on gameplay intensity or other game parameters as in this graphic:
Vertical Re-Orchestration general example
We may follow a couple of rough steps to make vertical re-orchestration work great:
Identifying a music layering game parameter: What is is the gameplay element that is supposed to drive the music? Is the player walking into a battle? The variety of enemies that appear on the screen? Is it the player's health? There are a number of variables that we can use and may be helpful to the composition process by choosing the right one.
Composition: Understanding which game variables can be used to drive the music can help you write very dynamic game music. You're going to have to ask yourself: How does music layering convey the gameplay that takes place on screen?
Stem export: This is a pure technical process, exporting the loops from the DAW and ensuring they are properly loopable.
Event creation in FMOD Studio: Creating a music event with one or more parameters and automations that adjust the volume of the loops.
Implementation in the game engine: You will have to set the game variable to a parameter in the game engine so that FMOD can take care of the layering process automatically.
As an example, I'll show you a piece of music consisting of four tracks. You can use the audio files that can be downloaded here to create the event or, if you like, you can do it with your own audio assets.
Time will be the game parameter that automates the volume of those loops. Imagine a game consisting of rounds that last a certain set number of seconds like this:
FMOD + Unity Vertical Re-Orchestration Demo
This piece of music consists of four individual tracks, i.e. a piano track, a pad track, a drums track and a synth melody track:
Music Stems in Ableton Live
Look for the DAW export feature in your music project, and export each track as a .wav file. In my case it would be four files corresponding to each piece of music. Make sure the stems that you are exporting are loopable and do not have any clicks and pops at the start or end of the files. Load the individual audio files in an audio editor if clicks or pops do occur and apply a very short fade in and a fade out at the beginning and end of the audio stems respectively.
Create a new 2D Event and a new track for each stem. You can do this by clicking on Create->Add Audio Track in FMOD Studio's menu, by right clicking on an empty track and selecting Add Audio Track or by pressing CTRL + T on your keyboard. You can also choose an unique color for tracks and instruments to make things more clear by right clicking on a track/instrument and selecting Set Color. Finally add a loop region by right clicking on an instrument and selecting New Loop Region:
Stems imported into FMOD Studio
By playing the music Event, you will hear all the tracks playing simultaneously at the same volume. To control the volume of the single tracks based on an game parameter, we have to add a Parameter to the Event.
Click on the "+" symbol in the Event Editor and select New Parameter. The Add Parameter window will show up:
Adding a new FMOD Parameter
Here we can set our desired settings for the parameter. In my case, I want to have a parameter that represents seconds with a value range between 0 and 120. The initial value is 120 as I want the time to decrease, reaching 0 after two minutes. After clicking on OK a new Game Parameter tab will show up in your Event:
Game Parameter tab of an Event in FMOD Studio
Now we can add automations to our tracks. The automations will be based on the specific Game Parameter value and not on the linear cursor position on the Timeline. That is something important to remember. To add a volume automation to a track, right click an the volume knob of a track and select Add Automation:
Adding an automation to the volume setting of a track in FMOD Studio
A new automation track will show up and you can add points to the curve and drag them around to define the volume value at a specific game parameter value. In this example the track is a full volume when the Time Parameter value is at 120 and muted when the Parameter reaches zero:
Volume automation in a Game Parameter tab
Try to play the Event and move the cursor around, you'll hear the automation following the Game Parameter value. Now add a volume automation for each track:
Volume automations on every track in the Game Parameter tab
Additionally, you can even add automations to effects and other Event properties such as Pitch. Here I'm adding Pitch automation and an EQ automation, changing the frequency of the low pass filter when the Time Parameter goes down:
Pitch & Multiband EQ automations
Take a look at the final Event in this video:
FMOD Studio Vertical Re-Orchestration Demo
Some notes to consider:
Depending on how drastic the value of the parameter changes it may be worth thinking about whether vertical re-orchestration is the best technique to use.
If you don't want parameter changes to happen instantly, experiment with the parameter's seek speed option.
Having a lot of stems playing at the same time may not be the best approach from a performance perspective. You can save resources by combining stems in a multi-channel file and using the Channel Mix effect to automate the volumes of the individual channels (effectively using a single stream instead of multiple one's).
Music in video games can be much more interactive than just layering loops, see this as an useful technique and use it appropriately.
Now it's time to implement the created Event in a game engine. If you are using Unity, check out the tutorials about playing FMOD Events in Unity and controlling FMOD Parameters in Unity. If you are using Unreal Engine 4 instead, read the tutorials about playing FMOD Events in Unreal Engine 4 and controlling FMOD Parameters in Unreal Engine 4.