Sobre o projeto

miniaudio é uma biblioteca de reprodução e captura de áudio escrita em C e distribuída como um único arquivo de código-fonte. De acordo com seu README, não possui dependências além da biblioteca padrão e visa compilar de forma limpa nos principais compiladores sem instalar pacotes de desenvolvimento extras. Ela tem como alvo as principais plataformas desktop e móveis. Principais capacidades descritas no README: - Sistema de build simples, sem dependências externas. - API simples e flexível, com uma API de baixo nível para acesso direto a dados de áudio bruto e uma API de alto nível para gerenciamento de som, mixagem, efeitos e espacialização 3D opcional. - Sistema flexível de grafo de nós para mixagem avançada e processamento de efeitos. - Gerenciamento de recursos para carregar arquivos de som. - Decodificação com suporte integrado para WAV, FLAC e MP3, além da capacidade de conectar decodificadores personalizados. - Codificação, atualmente apenas WAV. - Conversão de dados, reamostragem (incluindo reamostradores personalizados) e mapeamento de canais. - Geração básica de formas de onda e ruído, além de efeitos e filtros básicos. O README aponta para um Manual de Programação para uma descrição mais completa dos recursos. Inclui dois exemplos curtos em C: um usando a API de engine de alto nível para reproduzir um som e outro usando as APIs de dispositivo e decodificador de baixo nível com um callback de dados. Compilação: compile miniaudio.c como qualquer outro arquivo de código-fonte e inclua miniaudio.h como um cabeçalho normal. No Windows e macOS, nenhuma vinculação adicional é necessária; no Linux e BSD, vincule a -lpthread e -lm; no iOS, compile como Objective-C; vincule -ldl se ocorrerem erros de dlopen e -latomic para certos erros de builtins atômicos. A compatibilidade ABI não é garantida entre versões, então a integração sugerida é adicioná-lo diretamente à árvore de código-fonte. O CMake também é suportado. A documentação está em miniaud.io/docs e no topo de miniaudio.h, que o README descreve como a fonte mais atualizada e autoritativa; outra documentação é gerada a partir dela. Plataformas suportadas listadas: Windows; macOS e iOS; Linux; FreeBSD, OpenBSD e NetBSD; Android; Raspberry Pi; e Emscripten/HTML5. Outras plataformas podem ser suportadas por meio de um backend personalizado sem modificar o código-fonte do miniaudio, como mostrado em um exemplo de backend personalizado. Backends listados: WASAPI, DirectSound, WinMM, Core Audio, ALSA, PulseAudio, JACK, sndio, audio(4), OSS, AAudio, OpenSL|ES, Web Audio, Null (silêncio) e Personalizado. As informações de segurança são cobertas por um arquivo de política de segurança separado. O licenciamento é uma escolha entre domínio público ou MIT Sem Atribuição.