- Home
- Game Audio Middleware
- miniaudio
miniaudio
What it is
miniaudio is a free, open-source audio playback and capture library for C and C++. It is distributed as a single source file without external dependencies, so developers can add it directly to a project's source tree. The low-level API covers playback, capture, full-duplex operation, and device enumeration. A node graph handles mixing, effects, routing, and custom nodes, while the resource manager supports reference counting, streaming large audio sources, and asynchronous loading. Its higher-level engine combines these components to manage sounds with spatialization. Built-in decoding supports WAV, FLAC, and MP3; encoding supports WAV. Custom decoders can extend format support, with Vorbis and Opus given as examples. Listed targets include Windows, macOS, iOS, Linux, BSD variants, Android, Raspberry Pi, and Emscripten/HTML5. Other platforms require a custom backend for playback and capture. Users can choose the public domain or MIT No Attribution license. Documentation includes a programming manual, API reference, and examples. The project is free and has no free trial.
For and against
For
- Single source file with no external dependencies
- Supports playback, capture, and full-duplex audio
- Built-in decoding for WAV, FLAC, and MP3
- Public domain or MIT No Attribution licensing
Against
- Other platforms require a custom audio backend
- ABI compatibility is not guaranteed between versions
- Built-in encoding supports WAV only
The verdict
miniaudio provides low- and high-level audio tools in a compact, freely available library. Developers should consider its ABI compatibility warning and platform-specific backend requirements.
Who it suits
miniaudio may suit C and C++ developers building applications that need audio playback, capture, mixing, or effects. Its low-level API is suited to applications handling their own mixing, while the higher-level API addresses complex mixing and effects.
On the record
- ABI limitation
- ABI compatibility is not guaranteed between versions, including bug-fix releases, and the manual recommends static linking when building as a library.miniaud.io · read 4 Oct 2026
- Audio APIs
- miniaudio includes low-level and high-level APIs for working with audio devices and audio playback.miniaud.io · read 7 Oct 2026
- Audio backends
- Listed backends include WASAPI, DirectSound, WinMM, Core Audio, ALSA, PulseAudio, JACK, AAudio, OpenSL|ES, and Web Audio.github.com · read 4 Oct 2026
- Audio engine
- The high-level engine combines resource management and the node graph for managing sounds with spatialization.miniaud.io · read 4 Oct 2026
- Built-in formats
- The documentation lists built-in WAV, MP3, and FLAC decoding, and WAV encoding.miniaud.io · read 7 Oct 2026
- Compatibility limit
- The documentation says ABI compatibility is not guaranteed between versions, including bug-fix releases, and recommends static linking over shared-object builds.miniaud.io · read 7 Oct 2026
- Custom decoders
- Custom decoders can extend format support; the site gives Vorbis and Opus as examples.miniaud.io · read 7 Oct 2026
- Distribution
- The library is a single source file with no external dependencies and can be added directly to a project’s source tree.miniaud.io · read 4 Oct 2026
- Documentation and examples
- The site provides a programming manual, API reference, and examples.miniaud.io · read 7 Oct 2026
- Formats
- Built-in decoding supports WAV, FLAC, and MP3, while encoding supports WAV.github.com · read 4 Oct 2026
- Intended use
- The documentation describes the low-level API as suited to applications that handle their own mixing, and the high-level API as suited to complex mixing and effects.miniaud.io · read 7 Oct 2026
- License
- The site says miniaudio is released into the public domain and offers a choice of public domain or MIT No Attribution licensing.miniaud.io · read 7 Oct 2026
- Low-level API
- The low-level API supports audio playback, capture, full-duplex, and device enumeration.miniaud.io · read 4 Oct 2026
- Mixing and effects
- Its node graph supports mixing, effect processing, custom nodes, and audio routing.miniaud.io · read 7 Oct 2026
- Packaging
- The library consists of a single source file and has no external dependencies.miniaud.io · read 7 Oct 2026
- Platform limitation
- On other platforms, playback and capture require implementing a custom backend.github.com · read 4 Oct 2026
- Purpose
- miniaudio is an audio playback and capture library for C and C++.miniaud.io · read 7 Oct 2026
- Resource management
- The resource manager supports reference counting, streaming large audio sources, and asynchronous loading.miniaud.io · read 7 Oct 2026