Cross-platform Audio Creation Tool is an audio programming library and engine released by Microsoft as part of the DirectXSDK. It is a high-level audio library for authoring/playing audio that is written to use Xaudio on the Xbox, DirectSound on Windows XP, and the new audio stack on Windows Vista and Windows 7. Xaudio is an Xbox-only API designed for optimal digital signal processing. XACT also includes X3DAudio, a spatialization helper library available on both platforms, Windows and the Xbox. XACT was originally developed for Xbox development, and was later modified to work for Microsoft Windows development as well.
Overview
The original release of XACT was in 2002 and shipped as part of the Xbox SDK only and was originally called the "Xbox Audio Creation Tool". It was designed to allow sound designers and composers for the original Xbox console to have access and control of the powerful MCPx audio chip in the console, which previously could only be accessed through program code, via Xbox extensions to DirectSound. XACT was the first widely available game audio tool that allowed a sound designer to run a tool connected to a running game and modify the sounds inreal time, as the game was running, and support easy streaming of audio data from the console hard drive. Later, under the XNA initiative, it was re-written to work on both Windows and Xbox and renamed the "Cross-platform Audio Creation Tool" and included as part of the DirectX SDK. Support for XACT has been carried over from DirectX to XNA. The XACT Audio Authoring Tool is also available in XNA Game Studio. With the release of Windows SDK for Windows 8 Developer Preview, XACT is no longer supported on Windows. The XACT Audio Authoring Tool is a companion application used to organize audio assets into wave banks and sound banks. The wave banks and sound banks for a project are subsequently called by XACT from within the application.
* 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 of 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 - a file format containing a collection of waves
* Waves - the raw wave data in wav, aiff or xma format
Global Settings - defines rules and settings for sounds.
* Categories - sounds can be assigned to a category 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 - allow effects like reverb to be applied to sounds
* Compression Presets - compression can be applied to waves or wave banks