-
Notifications
You must be signed in to change notification settings - Fork 12
Platform independent low-latency audio for C, C++, Java and .NET.
License
sjoerdvankreel/xt-audio
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
<html> <head> <title>XT-Audio</title> <style> body { width: 1024; } </style> </head> <body> <h1>Runtime requirements</h1> <table border="1" cellspacing="0" cellpadding="2"> <tr> <td/> <td>Windows x64</td> <td>Linux x64</td> </tr> <tr> <td>Java (library and samples)</td> <td>JRE 17+</td> <td>JRE 17+</td> </tr> <tr> <td>Native (library and samples)</td> <td>Windows 7+</td> <td>Something recent</td> </tr> <tr> <td>.NET Framework (library)</td> <td>netstandard2.0</td> <td>netstandard2.0</td> </tr> <tr> <td>.NET Framework (samples and gui)</td> <td>.NET 4.8</td> <td>Mono 6.8</td> </tr> <tr> <td>.NET Core (library)</td> <td>netstandard2.0</td> <td>netstandard2.0</td> </tr> <tr> <td>.NET Core (samples)</td> <td>.NET Runtime 6.0</td> <td>.NET Runtime 6.0</td> </tr> <tr> <td>.NET Core (gui)</td> <td>.NET Runtime 6.0</td> <td>Not supported (1)</td> </tr> </table> <ul> <li>(1): .NET Core on Linux does not support Winforms.</li> </ul> <h1>Build-time requirements</h1> <h2>Dependencies</h2> <table border="1" cellspacing="0" cellpadding="2"> <tr> <td>PulseAudio (1,6)</td> <td>libpulse-dev</td> </tr> <tr> <td>ALSA (1,5)</td> <td>libasound-dev</td> </tr> <tr> <td>Jack (1,4)</td> <td>libjack-jackd2-dev</td> </tr> <tr> <td>DirectSound (2)</td> <td>None (built-in)</td> </tr> <tr> <td>WASAPI (2)</td> <td>None (built-in)</td> </tr> <tr> <td>ASIO (2,3)</td> <td>ASIO SDK 2.3.3 (source), asmjit (source, commit 2a706fd2ba355808cada31ac1eed8ce28caa6b37) </tr> </table> <ul> <li>(1) Linux only.</li> <li>(2) Windows only.</li> <li>(3) Only required when building with ASIO support.</li> <li>(4) Only required when building with JACK support.</li> <li>(5) Only required when building with ALSA support.</li> <li>(6) Only required when building with PulseAudio support.</li> </ul> <h2>Build tools</h2> <table border="1" cellspacing="0" cellpadding="2"> <tr> <td>Linux x64 (1)</td> <td>GCC 9.3+<br/>CMake 3.21+</td> </tr> <tr> <td>Windows x64 (2)</td> <td>Visual Studio 2022+<br/>Java SDK 17+<br/>.NET Framework SDK 4.8+<br/>.NET 6.0+ SDK<br/>CMake 3.21+<br/>Maven 3.8.4+<br/>Doxygen 1.8.10+<br/>Sandcastle (SHFB) 2021.11.7.0+</td> </tr> </table> <ul> <li>(1): Builds Linux x64 core library and c++ samples only.</li> <li>(2): Builds x64 Windows core library and c++ samples, Java, .NET Framework and .NET Core bindings and samples, and .NET GUI demo program.</li> </ul> <h1>Building XT-Audio</h1> <h2>Selective backend compilation</h2> XT-Audio may be compiled with built-in support for any/all of DirectSound, WASAPI and ASIO on Windows, and PulseAudio, ALSA and JACK on Linux. The core library (C) API does not change regardless of which backends are compiled-in, so bindings to other languages stay the same. If support for a specific backend is not selected at build-time (either through the build scripts, CMake, or by directly invoking the C++ compiler with the appropriate flags), XT-Audio will build without dependencies on that backend. Pre-built binaries are compiled with all supported backends enabled. <h2>Build instructions</h2> <ul> <li>On X64 Linux: cd build && ./build.sh [ENABLE_PULSE] [ENABLE_ALSA] [ENABLE_JACK]</li> <li>On X64 Windows: cd build && build.bat [ENABLE_DSOUND] [ENABLE_WASAPI] [ENABLE_ASIO] path/to/asiosdk path/to/asmjit/src (2,3)</li> </ul> <ul> <li>(1) For example ./build.sh ON OFF OFF builds with PulseAudio support only.</li> <li>(2) For example build.bat OFF ON OFF builds with WASAPI support only.</li> <li>(3) Paths to ASIO SDK and asmjit are required for builds with ASIO support.</li> </ul> <h2>Build outputs</h2> <table border="1" cellspacing="0" cellpadding="2"> <tr> <td>Core library</td> <td>x64, Linux/Windows, dynamic library and header files</td> </tr> <tr> <td>C++ bindings</td> <td>x64, Linux/Windows, header only</td> </tr> <tr> <td>C++ samples</td> <td>x64, Linux/Windows, native executable</td> </tr> <tr> <td>.NET bindings</td> <td>netstandard2.0</td> </tr> <tr> <td>.NET samples and demo GUI</td> <td>.NET Framework 4.8 / .NET Core 6.0 / Mono 6.8</td> </tr> <tr> <td>Java bindings and samples</td> <td>JRE 17+</td> </tr> </table> </body> </html>
About
Platform independent low-latency audio for C, C++, Java and .NET.
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published