miniaudio is written in C with no dependencies except the standard library and should compile cleanly on all major compilers without the need to install any additional development packages. All major desktop and mobile platforms are supported. miniaudio gives you complete flexibility. With the low-level API, just initialize a connection to the device and send or receive raw audio data. The modular design of miniaudio allows you to use the low-level API without compromising your ability to make use of other features like the node graph and resource manager. miniaudio's node graph system gives you an easy way to set up advanced mixing and effect graphs. Each node sends it's output to another node, and so on and so forth to produce all kinds of effects. You can even implement your own custom nodes and plug them in however you like. Plug multiple nodes into the same input node for mixing and use the splitter node for complex routing.
Features
- Simple build system with no external dependencies
- Simple and flexible API
- Low-level API for direct access to raw audio data
- High-level API for sound management, mixing, effects and optional 3D spatialization
- Flexible node graph system for advanced mixing and effect processing
- Decoding, with built-in support for WAV, FLAC and MP3, in addition to being able to plug in custom decoders
- Resource management for loading sound files
- Resampling, including custom resamplers
- Basic generation of waveforms and noise