Dynamic Music with ADX2 – Part3: The Beyond
Introduction
In the first two parts of this series, we laid out some simple horizontal and vertical music systems. These two systems can fulfill most of our interactive music needs. However, ADX2 still has many more tricks available for creating new musical gameplay dynamics.
In this month’s blog, we’ll look at using Atom Craft to create a few different systems which can be used instead of, or in conjunction with the techniques we have already investigated. The first is by using a Track Transition by Selector Cue to switch between two or more tracks of music quickly. The second approach looks at a more randomized approach using Random Cues as containers.
This project was created using CRI Atom Craft Ver.3.43.05
Track Transition Cue
Track Transition by Selector Cues offers a convenient way to switch between Tracks based on some gameplay logic. This Cue type is commonly used when creating footfall interactions, such as for switching between stepping on grass or gravel. However, it can be an excellent tool for dynamic music as well.
In the example above, the melody and rhythm are similar, but the tonality of the parts has changed. One track has an aggressive sound, and the other is more subdued. This technique could be used in a game that has several playable characters, each with their own unique sound pallet, but with one unifying composition.
- In the Project Tree, right-click Selector Folder → New Object → Create Selector
- Name it “TrackSelector”
- Right-click TrackSelector and create 2 Selector Labels
- Name them “RiffA” and “RiffB”
- Create Track Transition By Selector Cue, name it “Transition_Cue”
- Change the Time Base to Cue, and set:
- Setting Type to Bars/Beats
- Measure and BPM to match our music
- Right-click Cue → New Object → Create BeatSync Parameter
- Add riff Materials to separate Tracks
- Assign Selector Labels to respective Tracks (can be assigned in Timeline view)
- Change the Time Base to Cue, and set:
Once the above is set up, we can finesse the transition settings in the Inspector on the Cue. The Fade-in and Fade-out times, together with the Curve Type, will affect how quickly and smoothly the Tracks will be swapped. Changing the Offset time can help preserve the transient at transition, which might otherwise be faded over.
Random Loop Container
Depending on the type and style of the game, it can be essential to have some randomization in the music to keep it from getting boring. This is often true of games that feature large open worlds that aren’t tightly scripted. In this case, it can help to have modular chunks of music that can be randomly sequenced. The hardest part of this system is figuring out how to compose modular pieces of music that sound good in random configurations. Fortunately, the implementation is straight-forward, and all we need to do is:
- Create Random Cue containers for each set of stems
- Create Polyphonic Cue, and name it “MusicSequencer_Cue”
- Drag the containers onto the MusicSequencer_Cue
- Change the Time Base to Cue, and set:
- Setting Type to Bars/Beats
- Measure and BPM to match our music
- Create a Loop Marker and set the bounds around the loop
- Change the Time Base to Cue, and set: