XACT is the Microsoft cross-platform audio creation tool (Xbox and PC). It allows the creation of wave and sound banks via the XACT Authoring Tool and includes a set of API functions to integrate the audio into the game.
The XACT area of this site is split into the following pages
- XACT Introduction - this page
- XACT simple - the simplest way to play sounds using XACT. Shows how to play sounds without involving all the content creation side of XACT
- XACT full - programming with the content creation tool
XACT Sound Creation Features
- Support for the following formats: WAV, AIFF, XMA
- Note: also supports embedded loop points in WAV and AIFF formats
- 16 and 8 bit PCM data
- Supports Stereo and 5.1 speaker arrangements
- Organisation of sounds
- Multiple audio files can be grouped together into Wave Banks (XWB extension)
- Cues and settings can be bundled with the Waves in Sound Banks (XSB extension)
- Audio console window can be used to preview audio
- Audio settings can be adjusted in-game (with debug mode libraries)
XACT API Programming Features
- The API allows the integration of the wave, sound and cue information from the creation phase
- In memory and streaming support
- Audio event notification
From the December update of DirectX XACT now includes a code-driven API allowing lower level loading and playback of sounds without having to use all the XACT sound organisation features.
XACT Terminology and File Types
- Sound Banks (.xsb) - a collection of sounds and cues.
- Sounds - a sound has one or more waves together with properties like volume and pitch. Sounds are made up of tracks.
- Tracks - tracks are made up events E.g. the simplest track has a Play Wave event
- Events - various actions that take place within a track. Actions include: Play, Stop, Set Volume, Set Pitch etc.
- Cues - a cue is used in code to trigger sounds. Each cue is made up of one or more sounds
- Wave Banks (.xwb ) - a file format containing a collection of waves
- Waves - the raw wave data in wav, aiff or xma format
- Global Settings (.xgs) - defines rules and settings for sounds.
- Categories - sounds can be assigned to a category (only one each) that specifies certain rules like number of instances along with settings like volume. You could create a category for the sounds of one character in your game so they all have the same volume. There are three predefined categories: global, default and Music.
- Variables - these can be defined in the design stage and then referenced by the programmer in code to control Run-Time Parameter Controls
- Run-Time Parameter Controls - also known as 'sliders'. These allow the control of sound parameters as the sound plays. For example they could be used to control the pitch of a car engine sound so as the accelerator is pressed the pitch is changed
- DSP Effect Path Presets (DSPs) - allow effects like reverb to be applied to sounds
- Compression Presets - compression can be applied to waves or wave banks
Getting Started with XACT
There are two steps to using XACT. The first is to create sound banks, wave banks and settings using the DirectX SDK supplied utility: Microsoft Cross-Platform Audio Creation Tool. The second step is to write code in your game to load and use the sounds.
The Microsoft Cross-Platform Audio Creation Tool is not covered here but it should be fairly easy to pick up - take a look at some of the samples with the SDK.