FAudio - Accuracy-focused XAudio reimplementation for open platforms
Clone or download


This is FAudio, an XAudio reimplementation that focuses solely on developing
fully accurate DirectX Audio runtime libraries for the FNA project, including
XAudio2, X3DAudio, XAPO, and XACT3.

Project Website: http://fna-xna.github.io/

FAudio is released under the zlib license. See LICENSE for details.

About FAudio
FAudio was written to be used for FNA's Audio/Media namespaces. We access this
library via FAudio#, which you can find in the 'csharp/' directory.

FAudio depends solely on SDL2. FAudio never explicitly uses the C runtime.

Building FAudio
For *nix platforms, use cmake.

    $ mkdir build/
    $ cd build/
    $ cmake ../
    $ make

For Windows, see the 'visualc/' directory.

For Xbox One, see the 'visualc-winrt/' directory.

For iOS/tvOS, see the 'Xcode-iOS/' directory.

Unit tests
FAudio includes a set of unit tests which document the behavior of XAudio2 and
are to be run against FAudio to verify it has the same behavior. The tests are
NOT built by default; set BUILD_TESTS=1 to build and then run the output with:

    $ ./faudio_tests

To build a Windows executable to run the tests against XAudio2, use the
provided Makefile. This requires mingw-w64 to build.

    $ cd tests/
    $ make faudio_tests.exe
    # run faudio_tests.exe on a Windows box

Found an issue?
Issues and patches can be reported via GitHub: