À propos du projet

miniaudio est une bibliothèque de lecture et de capture audio écrite en C et distribuée sous forme d'un seul fichier source. Selon son README, elle n'a aucune dépendance au-delà de la bibliothèque standard et est conçue pour se compiler proprement sur les principaux compilateurs sans installer de paquets de développement supplémentaires. Elle cible les principales plateformes de bureau et mobiles. Principales capacités décrites dans le README : - Système de compilation simple sans dépendances externes. - API simple et flexible, avec à la fois une API bas niveau pour accéder directement aux données audio brutes et une API haut niveau pour la gestion des sons, le mixage, les effets et une spatialisation 3D optionnelle. - Un système flexible de graphe de nœuds pour le mixage avancé et le traitement d'effets. - Gestion des ressources pour le chargement des fichiers sonores. - Décodage avec prise en charge intégrée des formats WAV, FLAC et MP3, ainsi que la possibilité de brancher des décodeurs personnalisés. - Encodage, actuellement WAV uniquement. - Conversion de données, rééchantillonnage (y compris des rééchantillonneurs personnalisés) et mappage de canaux. - Génération de base de formes d'onde et de bruit, ainsi que des effets et filtres de base. Le README renvoie à un Programming Manual pour une description plus complète des fonctionnalités. Il inclut deux courts exemples en C : l'un utilisant l'API haut niveau du moteur pour lire un son, et l'autre utilisant les API bas niveau de périphérique et de décodeur avec un callback de données. Compilation : compiler miniaudio.c comme n'importe quel autre fichier source et inclure miniaudio.h comme un en-tête normal. Sous Windows et macOS, aucune édition de liens supplémentaire n'est nécessaire ; sous Linux et BSD, lier avec -lpthread et -lm ; sous iOS, compiler en Objective-C ; lier -ldl si des erreurs dlopen se produisent, et -latomic pour certaines erreurs liées aux builtins atomiques. La compatibilité ABI n'est pas garantie entre les versions, aussi l'intégration suggérée consiste à l'ajouter directement à l'arborescence des sources. CMake est également pris en charge. La documentation se trouve sur miniaud.io/docs et en haut de miniaudio.h, que le README décrit comme la source la plus à jour et faisant autorité ; les autres documentations sont générées à partir de celle-ci. Plateformes prises en charge listées : Windows ; macOS et iOS ; Linux ; FreeBSD, OpenBSD et NetBSD ; Android ; Raspberry Pi ; et Emscripten/HTML5. D'autres plateformes peuvent être prises en charge via un backend personnalisé sans modifier le source de miniaudio, comme le montre un exemple custom_backend. Backends listés : WASAPI, DirectSound, WinMM, Core Audio, ALSA, PulseAudio, JACK, sndio, audio(4), OSS, AAudio, OpenSL|ES, Web Audio, Null (silence) et Custom. Les informations de sécurité sont couvertes par un fichier de politique de sécurité distinct. La licence est au choix domaine public ou MIT No Attribution.