Dynamic Music Creation Using Wwise - Part 2
Article by Louis-Xavier Buffoni
© 2009, 2010 gamesounddesign.com
Making States Last
At this point, we are able to reproduce the original song by changing states at the right moment. But in an
interactive context, we do not control when state changes occur; they depend on the action. The action may
remain in the same state for an indefinite amount of time, possibly longer than the original material intended,
and when it changes, it might not be when we expect it to do so. We need to plan our design in such a way
that we adapt correctly to these two constraints. Concretely, the issue of remaining in the same state
indefinitely is addressed by editing playlists, whereas the issue of changing state at any time is addressed by
editing switch container’s transitions.
Open the container “02_Making_States_Last” to follow the improvements to the design described in the
following subsections.
Designing the Idle Playlist
The Idle playlist can have its own challenges. Let’s say that I do not feel like composing original material for
Idle, so I simply grab some instruments and sound effects from the rest of the song, lay this out and export it
in a few different segments. These segments are imported into the Idle playlist, and made to loop inside a
random selection group. Since Idle can go on forever, I think it is mandatory to resolve to complete silence at
some point. No matter how good a song is, hearing that song over and over is very annoying. So, after a
couple of loops, an empty segment is “played” for several bars (figure 5).
To add more variations, sparse percussions are layered over “Idle03” in sequential sub-tracks (figure 7).
Getting More Mileage out of the Mid Playlist
Since the Mid playlist can remain for quite a long time, and looping its three segments will not keep the
interest of our listeners very long, I needed to add some variations. So, I rendered the violin parts that
occur in section High and auditioned them over segments of Mid. This worked fairly well because the song is
structured over a very simple chord progression. The playlist was organized in such a way that it loops our
three main segments, with or without the violin overlays. At each loop there is a drum break (“Break01”), or
a drop (“Drop_02_nodrum”, optionally following “Breakdown_01”), more or less borrowed from section High.
These are selected each time using random step groups (figure 8).
Figure 5 - the idle playlist
I chose to schedule the Idle segments one after the other completely randomly. However, this did not always
work well. In particular, segment “Idle03” always seemed to come out of nowhere, so I needed to tweak the
playlist’s logic by adding specific transition rules: whenever “Idle03” follows something, it fades in, and whenever
it precedes something, it fades out (figure 6). Playlist-level transition rules come in handy when using random
groups, or whenever you need to fix dovetailing for a specific sequence of segments.
Figure 6 – Playlist-level transition rule using a fade out
Figure 7 – Sequential sub-tracks
Figure 8 - the mid playlist