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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.