The December 2013 release of DirectX Tool Kit is now available on
CodePlexGitHub, and includes a C++ implementation of the XNA Game Studio’s low-level audio framework using XAudio2 and X3DAudio. DirectX Tool Kit for Audio is included in both the DirectX 11 and DirectX 12 versions of DirectX Tool Kit.
- AudioEngine - This class represents an XAudio2 audio graph, device, and mastering voice; similar to XNA's AudioEngine.
- SoundEffect - A container class for sound resources which can be loaded from
.wavfiles similar to XNA's SoundEffect. These can be played as 'one-shots' managed by the engine, or used to create a SoundEffectInstance.
- SoundEffectInstance - Provides a single playing, looped, paused, or stopped instance of a sound similar to XNA's SoundEffectInstance. These support 3D positional audio and optionally reverb effects.
- SoundStreamInstance (new in May 2020) - SoundEffectInstance for playing waves from a streaming XACT-style
- DynamicSoundEffectInstance - SoundEffectInstance where the application provides the audio data on demand similar to XNA's DynamicSoundEffectInstance.
- WaveBank - A container class for sound resources packaged into an XACT-style
.xwbwave bank, similar to XNA's WaveBank but with support for directly playing one-shots and creating SoundEffectInstances that refer to entries in the wave bank.
- AudioListener, AudioEmitter - Utility classes used with SoundEffectInstance::Apply3D.
DirectXTK for Audio uses XAudio 2.8 for Windows Store apps for Windows 8.1, Windows Store apps for Windows 8.0, and Windows phone 8. The VS projects for these platforms all include the graphics and audio components.
When building Win32 desktop applications, you can either make use of XAudio 2.8 if targeting Windows 8.0 or later, XAudio 2.9 if targeting Windows 10,
or you can make use of XAudio 2.7 with the legacy DirectX SDK (June 2010) to target Windows Vista, Windows 7, or later. There is one VS project for the graphics component, with distinct projects for the different audio versions.
Windows 10: When building with the Windows 10 SDK, DirectX Tool Kit for Audio uses XAudio 2.9 which includes xWMA format support which was not present in XAudio 2.8. Therefore the projects for UWP, Xbox, and Windows 10 include both graphics and audio components.
Windows 7 Update: There is now a NuGet package for using XAudio 2.9 down-level on Windows 7 Service Pack 1, Windows 8.0, and Windows 8.1. See Microsoft Docs for details. Support for legacy XAudio 2.7 has therefore been removed.
The DirectXTK package also includes a new command-line tool, XWBTool, which can be used to build XACT-style wave banks for more efficient management of audio data. DirectXTK for Audio does not make use of the legacy XACT Engine, XACT Cue, or XACT SoundBank. It only uses
.xwb wave banks as a method for packing
.wav data. The WaveBank class can use
.xwb wave banks built with XWBTool or the legacy XACTBLD tool.
xwbtoolalso fixes some known issues with the XACTBLD tool when trying to create compact wavebanks. See this commit.
Update: The January 2014 release of DirectXTK includes voice management and optional mastering volume limiter. Refreshed all the Simple Sample releases to include DirectXTK for Audio demo. DirectX Tool Kit is also hosted on GitHub.
The May 2020 release added support for streaming from XACT-style
.xwb files for PCM, ADCPM, xWMA, and XMA2 formats. The
xwbtool can generate both streaming and in-memory wave banks.
The June 2020 release of DirectXTK removes all use of legacy XAudio 2.7 which required the deprecated DirectX SDK. For Windows 7 support, it now uses XAudio2Redist which provides XAudio 2.9 support for Windows 7 SP1, Windows 8.0, and Windows 8.1 with automatic forwarding to the built-in XAudio 2.9 on Windows 10.