{"id":15049355,"url":"https://github.com/clownacy/clownaudio","last_synced_at":"2025-10-12T22:13:20.800Z","repository":{"id":37752142,"uuid":"187921323","full_name":"Clownacy/clownaudio","owner":"Clownacy","description":"Sound engine that is suitable for video games and other multimedia applications.","archived":false,"fork":false,"pushed_at":"2024-10-03T23:06:58.000Z","size":7027,"stargazers_count":26,"open_issues_count":2,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-06T06:11:21.478Z","etag":null,"topics":["ansi-cpp","c99","cplusplus-98","flac","libxmp","mixer","mp3","ogg-vorbis","sound-engine","wav"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Clownacy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-05-21T22:17:30.000Z","updated_at":"2025-02-10T17:54:36.000Z","dependencies_parsed_at":"2024-04-07T00:38:30.062Z","dependency_job_id":null,"html_url":"https://github.com/Clownacy/clownaudio","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clownacy%2Fclownaudio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clownacy%2Fclownaudio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clownacy%2Fclownaudio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clownacy%2Fclownaudio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Clownacy","download_url":"https://codeload.github.com/Clownacy/clownaudio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142938,"owners_count":21054671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansi-cpp","c99","cplusplus-98","flac","libxmp","mixer","mp3","ogg-vorbis","sound-engine","wav"],"created_at":"2024-09-24T21:19:56.151Z","updated_at":"2025-10-12T22:13:15.759Z","avatar_url":"https://github.com/Clownacy.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## About\n\nclownaudio is a stereo sound engine, capable of playing and mixing sounds in a\nvariety of formats.\n\nSupported formats include...\n* Ogg Vorbis\n* MP3\n* Opus\n* FLAC\n* WAV\n* Various tracker formats ('.it', '.xm', '.mod', etc.)\n* PxTone Music\n* PxTone Noise\n* SNES SPC\n\nclownaudio is a 'full stack' sound engine, meaning that it handles everything\nfrom decoding to playback - the user just has to provide it with sound data to\nprocess.\n\nThat said, clownaudio's internals are modular, so you can easily extract\nits mixer and use it as part of your own audio system if needed.\n\n\n## Decoding backends\n\nIn order to support a range of audio formats, clownaudio leverages numerous\nopen-source libraries, dubbed 'decoding backends'. These libraries include...\n\n| Library         | Format                                                              | Licence                           | Built-in |\n|-----------------|---------------------------------------------------------------------|-----------------------------------|----------|\n| libvorbis       | Ogg Vorbis                                                          | BSD                               | No       |\n| stb_vorbis      | Ogg Vorbis                                                          | Public-domain/MIT                 | Yes      |\n| dr_mp3          | MP3                                                                 | Public-domain/MIT-0               | Yes      |\n| libopus         | Opus                                                                | BSD                               | No       |\n| libFLAC         | FLAC                                                                | BSD                               | No       |\n| dr_flac         | FLAC                                                                | Public-domain/MIT-0               | Yes      |\n| dr_wav          | WAV                                                                 | Public-domain/MIT-0               | Yes      |\n| libsndfile      | Various (includes Ogg Vorbis, FLAC, WAV, AIFF, and others)          | LGPL 2.1                          | No       |\n| libopenmpt      | Various (includes .it, .mod, .s3m, .xm, .mptm, and many others)     | BSD                               | No       |\n| libxmp          | Various (includes .it, .mod, .s3m, .xm, and many others)            | LGPL 2.1                          | Yes      |\n| libxmp-lite     | .it, .mod, .s3m, .xm                                                | MIT                               | Yes      |\n| PxTone          | PxTone Music/PxTone Noise                                           | Custom (appears to be permissive) | Yes      |\n| snes_spc        | SNES SPC                                                            | LGPL 2.1                          | Yes      |\n| oswrapper_audio | Various (OS dependent)                                              | BSD0                              | Yes      |\n\nclownaudio aims to be bloat-free and dependency-free: each decoding backend can\nbe toggled at compile-time, and an effort is made to provide multiple backends\nfor individual formats, to allow the user a choice between standard libraries\n(such as libvorbis), and lighter built-in libraries (such as stb_vorbis).\n\n\n## Playback backends\n\nIn addition, clownaudio can utilise one of the following libraries to handle\naudio playback:\n\n| Library   | Licence             | Built-in |\n|-----------|---------------------|----------|\n| Cubeb     | ISC                 | No       |\n| CoreAudio | zlib                | Yes      |\n| miniaudio | Public-domain/MIT-0 | Yes      |\n| PortAudio | MIT                 | No       |\n| SDL1.2    | LGPL 2.1            | No       |\n| SDL2      | zlib                | No       |\n\n\n## Building\n\nclownaudio is built with CMake - both shared and static libraries can be\nproduced. Built libraries can be accessed via `pkg-config` and CMake's\n`find_package`.\n\nAs an alternative, CMake projects can embed clownaudio directly, using\n`add_subdirectory`.\n\nExample software using clownaudio can be found in the `examples` directory.\nThe CLI example's `Makefile` demonstrates linking clownaudio with `pkg-config`,\nand its `CMakeLists.txt` file demonstrates linking with `find_package` and\nembedding with `add_subdirectory`.\n\nAn effort is made to keep clownaudio's build system requirements simple, so that\nprojects wishing to embed its source files directly and bypass its CMake build\nsystem can do so. See the CLI example's `Makefile.old` for an example of this.\n\n`PKGBUILD` files for MSYS2 and Arch Linux are provided in the `packages`\ndirectory.\n\n\n## Licensing\n\nclownaudio itself is under the zlib licence.\n\nBe aware that libraries used by the various backends are subject to\ntheir own licences.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclownacy%2Fclownaudio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclownacy%2Fclownaudio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclownacy%2Fclownaudio/lists"}