Bookmark and Share
Game Sound Design Logo
states and playlist association
music segment editor
music switch container property editor
transport view
Dynamic Music Creation Using Wwise
Article by Louis-Xavier Buffoni
Privacy Policy
Terms Of Use
© 2009, 2010 gamesounddesign.com
articles
interviews
how-to
videos
forum
games!
about
home
Introduction
In the article “Making Music Interactive: Elaboration of the Feature Set in Wwise,” an interactive music design was sporadically used to demonstrate a few of the interactive music features. In this addendum, I will describe how I created this design as a way to help and inspire sound designers who want to transform a linear composition into music that adapts dynamically to gameplay.
Normally, the goal of adding a song to a game is to accompany an action sequence in a hypothetical game. In its interactive declination, the intensity of the song would adapt to the intensity of the action. For example, imagine a war game during a combat sequence. If a player is hiding far away from the combat, the intensity would be low. In the heat of battle, the intensity would gradually increase until something important happens, like victory or the death of the player.

To illustrate how to integrate interactive music into a game, I started out by composing a song that could support a combat action sequence in a traditional way. The song was not composed to be used in interactive music per se, except perhaps that its structure was kept relatively simple, composed of parts of 8 or 16 bars. The static arrangement of the song may be previewed here.
To follow along with this text, you can download the project here. It was created using Wwise 2010.1.3. If you don’t currently have the Wwise 2010.1.3 authoring tool, download it here, and follow the installation instructions. Note that it will work with more recent versions; project migration will occur the first time you open it. Together, we will define how the game should affect the music, split the song into segments and gradually tweak the project so that they blend seamlessly into one another at run-time. The Interactive Music Hierarchy of the Wwise project has four separate music switch containers, corresponding to the 4 main sections of this article.


Basic Integration

Game Interface

Let’s start by creating a switch group called “Intensity” with four arbitrary values: Idle, Mid, High and Climax. The game knows about this switch group, and pushes a new value when it is appropriate. In Wwise, switches and states are alike. From now on, switch group values will simply be referred to as States.

Each state and its lifetime are described below:
- The
Climax state only occurs at the end of the game.
- The
Idle state occurs when there is no or little action in the game. This state may last forever.
- The
Mid state occurs when the action becomes more intense, moving into the High state as required. Mid may be sustained for some time, typically longer than High, which generally resolves quite quickly to Climax, or back to Mid if the player retreats from combat.

Assigning Content to Game States

A good starting point is to split our song into segments of 8 or 16 bars, corresponding to the parts I mentioned earlier, next we will group them in sequential playlists, and then assign them to appropriate states. Since the second half of the song is generally more intense than the first half, let’s group segments of the first part inside a playlist container called “Mid”, and segments of the second part into another playlist called “High”. “Climax” has the song’s outro only, and “Idle” has no material yet. Now, create a switch container (“01_Basic_Integration” in the project), load the Interactive Music layout (F10), and associate all playlists with their corresponding state value: “Idle” with Idle, “Mid” with Mid, and so on (figure 1). From now on, these names will be used loosely to refer either to switch values, playlists, or game states in general.
Figure 1- states and playlist association
Before rendering each segment in my DAW, I generally insert a few bars of silence between them to capture the reverb tails and other unfinished notes, avoiding any abrupt cuts. These extra bars are used as “post-exit regions”; a segment’s post-exit is played back over the following segment, and this helps blend the segments nicely (figure 2).
Figure 2 - segment showing post-exit region
Transitions between Each State

We need to set up basic transition rules between each state. Generally, when a state change occurs, the segment that is currently playing will be allowed to play until its Exit Cue, before the engine schedules the first segment of the next state. Additionally, the drop between Mid and High sections in the original song constitutes a separate segment (“Drop_01”), placed directly under the switch container, and is used as a transition segment between the Mid and High states (figure 3).
Figure 3 - transition rule using a transition segment
Likewise, the song’s intro is used as a transition segment between Idle and Mid.

To hear how this works, in the Project Explorer, click on switch container “01_Basic_Integration” to load it in the Transport view (figure 4), set the switch group to
Idle, and press Play (nothing is heard), then change it to Mid (the intro plays back, followed by the segments of Mid), change it to High (Drop_01 plays back at the exit cue of the current segment, followed by the segments of High), and change it to Climax (the outro plays back at the end of the current segment).
Figure 4 - transport view
ARTICLE CONTINUES ON PAGE 2.