XACT Best Practices
Before You Get Started
When creating audio resources for a game title, it is important to understand which
aspects are in the hands of the programmer and which are the responsibility of the composer
or sound designer. To help avoid confusion and collisions as each pursues their tasks, the Microsoft Cross-Platform Audio Creation Tool (XACT) provides a single way to perform most tasks.
Properties and behaviors that are specified in content cannot generally be overridden
by the programmer. Similarly, the composer does not control the management
of memory or other resources.
At the project start, the sound designer and the programmer decide jointly on important cues,
or trigger points, in the game. The composer creates a sound (or perhaps multiple sounds,
one of which will be chosen randomly to play) that will be played when the cue event occurs.
Using the audio resources that the composer has created and organized with the XACT,
the programmer will ensure that the sound is played at the right time in the game.
Designer Responsibilities
The sound designer or composer will use the XACT to organize the audio as follows:
- Grouping the audio wave files he/she has created into collections of wave banks.
- Defining the program cues that designer and programmer have agreed upon as XACT data.
- Assigning the audio to cues, and organizing these relationships into sound banks.
- Assigning playback settings to each cue event, which is included in the sound bank information.
This can include volume and pitch, adjustments to hardware envelopes, starting and stopping
low-frequency oscillators, and sweeping filters.
- Defining the variables that the programmer will need to control the audio elements within the game software.
- Defining run-time parameter controls that allow the programmer to vary the audio,
in order to create dynamic, interactive audio content.
- Build the project to produce the data files the programmer will need to integrate
the audio resources into game.
Programmer Responsibilities
The programmer will use the data files received from the sound designer with the XACT API libraries to:
- Launch the calls that will play the cues.
- Manage software resources (such as memory, free hardware voices, and content loading and unloading).
- Manage all dynamic sound management (pause/resume, 3D positioning, and so on).
See Also
XACT Overviews,
XACT Reference,
XACT Audio Authoring