Table of Contents

Interactive Music Tips & Best Practices

Interactive music is a complex tool with many options. Adopting a coherent strategy towards interactive music at the beginning of a project can save you time and effort later on. Of course, there are multiple ways to approach any interactive music project, and you can use Wwise in any way you see fit to create the best results for your game. The following are suggestions for how you could implement interactive music.

Implementing a Vertical Project Structure

A vertical project structure is one based on the repetition and variation of a small number of segments, each with multiple tracks. A basic vertical project structure might appear as follows:

In this example, a four-track Music Segment is used as a basis for interactive music. In the upper part of the illustration, the segment is being played back without any state being specified. The bass and drum clips are set into normal tracks that repeat the same clips each time they repeat. However, because the guitar track is set to be a sequence step track, the clips in it are played back according to an assigned sequence. The piano track is set to be a random step track, so its clips are played back in random order. In the case of both sequence step and random step tracks, the key to this variety is to create sub-tracks containing alternative clips to the one in the original track.

In the lower part of the previous illustration, the tracks have been modified to respond to state changes. When the game is in the relatively peaceful Exploration state, no drums are heard. Instead, a piano track (made of various sub-tracks) plays. Upon transition to the more exciting Fight state, the volume of the piano track drops to be inaudible, and the drum track volume rises. The guitar volume increases as well. The overall effect is one of music shifting to match the game action.

In a vertical project, you can vary which tracks will play using:

  • State changes

  • Random step sub-tracks

  • Sequence step sub-tracks.

A vertical approach is particularly suited to projects with a few, complex pieces of music, with relatively infrequent shifts between states.

Implementing a Horizontal Project Structure

A horizontal project structure is one based on the hierarchical arrangement of several short segments. A basic horizontal project structure might appear as follows:

In this example, two Music Playlist Containers hold Music Segments corresponding to two game states: Exploration and Fight. In the first container, segments are arranged in a Random Group, so they will play back in random order. In the second Container, the segments are arranged in a Sequence Group, so they will play back according to a predetermined sequence. When a transition from Exploration state to Fight state occurs, the last segment playing in the Exploration container transitions to the first segment in the Fight container. This creates an effect of complete change from one type of music to another.

In a horizontal project, you can vary which segments will play using:

  • State changes

  • Random Containers

  • Sequence Containers.

A horizontal approach is suggested for projects involving many short, relatively simple pieces of music, and is especially good for projects with frequent state changes.

Implementing a Combination Project Structure

The majority of projects created with Wwise use a combination of horizontal and vertical elements. You can decide how much of each type of structure is best suited for your project. For example, you could create a different segment for each of your states (horizontal structure), but vary the track playback in each using random sub-tracks (vertical structure).

Using Multiple Levels of Music Switch Containers

The Music Switch Container supports being bound to multiple State Groups or Switch Groups. In a scenario where the music depends on multiple inputs from the game, it is preferable to avoid creating a hierarchy of cascading Music Switch Containers, and instead insert all inputs on the same Music Switch Container. The content of Music Switch Containers can be organized using Virtual Folders, and the association system allow re-using the content from multiple State or Switch values across associations.

Be aware that by using multiple levels of Switch Containers, you introduce a situation where you are incapable of specifying an order of importance for all transitions, because they are defined in multiple distinct sets, both with a catch-all rule, and no relationship of priority exists between them. Consequently, your music transitions will feel random and you will have a hard time tracking all the possibilities.