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:
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.
Vertical Re-Orchestration example
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:
Exporting stems from a DAW
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:
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.
Setting up the music event in FMOD Studio and importing the stems
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:
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.
Setting up a FMOD Parameter to control the volume of the stems
Click on the “+” symbol in the Event Editor and select New Parameter. The Add Parameter window will show up:
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:
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:
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:
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:
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:
Take a look at the final Event in this video:
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.
Implementing the music Event in a Game Engine
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.