About this project

FAudio is an open-source reimplementation of Microsoft's DirectX Audio runtime libraries, developed for the FNA project. Its stated goal is full behavioral accuracy rather than merely providing a compatible API surface, so that software written against the original libraries behaves the same way on open platforms. Scope The project covers several related audio APIs: - XAudio2, the low-level audio mixing and playback API - X3DAudio, the spatial audio helper library - XAPO, the cross-platform audio processing object interface - XACT3, the higher-level audio creation tool runtime Intended use FAudio was written to back FNA's Audio and Media namespaces. Applications access it through FAudio#, a C# binding located in the repository's csharp/ directory, which makes it usable from .NET-based game code. Dependencies FAudio depends solely on SDL 3.2.0 or newer. The README notes that it never explicitly uses the C runtime, which keeps the dependency footprint small and the behavior more predictable across platforms. Building Build instructions differ by target: - On Unix-like systems, the project uses CMake: create a build directory, run cmake on the source tree, then make. - On Windows, build files are provided in the visualc/ directory. - For Xbox GDK, see visualc-gdk/. - For iOS, tvOS and macOS universal binaries, see the Xcode/ directory. Testing FAudio ships with unit tests that document the behavior of XAudio2 and are meant to be run against FAudio to confirm matching behavior. These tests are not built by default; setting BUILD_TESTS=1 enables them, after which the faudio_tests binary can be executed. A separate Makefile in tests/ builds a Windows executable (requiring mingw-w64) so the same tests can be run against the real XAudio2 implementation for comparison. License and community FAudio is released under the zlib license. Issues and patches are handled through the project's GitHub repository, and the project website is hosted at fna-xna.github.io.