Go bindings for the miniaudio library, providing a cross-platform audio playback and capture API.
malgo is a Go library that provides bindings for the miniaudio C library, enabling audio playback and capture across multiple platforms. It solves the problem of accessing native audio APIs in Go with minimal dependencies and a unified interface.
Go developers who need to integrate audio functionality into their applications, such as those building media players, audio tools, or games.
Developers choose malgo for its cross-platform support, minimal external linking requirements, and straightforward API that abstracts away platform-specific audio backend complexities.
Mini audio library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports Windows, Linux, macOS, iOS, Android, and BSD variants with native backends like WASAPI and CoreAudio, ensuring broad compatibility as outlined in the README.
Only requires cgo and links minimally; for instance, on Linux/BSDs it links only -ldl, reducing external dependencies compared to other audio libraries.
Provides consistent Go interfaces for audio device enumeration, playback, and capture, abstracting platform-specific complexities for easier development.
Leverages platform-specific audio APIs such as PulseAudio, ALSA, and OpenSL|ES, offering robust audio handling across different systems.
Requires cgo, which complicates build processes, hinders cross-compilation, and can increase binary size, making it less ideal for pure Go environments.
Focuses on low-level audio access; lacks built-in features for audio effects, format conversion, or advanced streaming, requiring additional libraries for complex tasks.
Documentation is primarily API reference and examples, with limited tutorials or best practices, which may slow down developers new to audio programming.