Competent Audio (CA) is an audio engine suitable for video games.
It is written in C, but is designed for interoperability with other languages. Windows and Linux binaries for x86 and amd64 are available.
CA uses a machine graph model with support for arbitrary numbers of machines, limited only by the available system resources:
- Samplers play back audio clips.
- Mixers combine audio signals and optionally perform signal processing.
- Sinks send audio signals to an output device.
Stereo and mono sound output is supported via a slightly customized version of libsoundio 2.0.
Audio clips can have arbitrary channel counts, and can be queued for streaming or dynamic music.
CA contains a very simple embedded VM for running custom signal processors, allowing you to add custom DSP code (currently assembly language only) without compiling native code.
Errors are reported using well-documented negative return codes, and CA attempts to handle expected errors gracefully.
Features
- Supports Windows and Linux
- Binaries available for easy deployment
- Gain, frequency and panning controls
- No artificial limits on polyphony
- Automatic or manual device selection and switching
- Optionally thread safe API
- Scriptable signal processing effects
- Control and group sounds logically with machine graphs
- Written in plain C
- Designed for interoperability with other languages
- Documented error codes and conditions
- Reasonable size, latency and performance
- Includes high quality bindings for Java