{"id":18779511,"url":"https://github.com/callumc34/audioplusplus","last_synced_at":"2025-12-18T01:30:15.204Z","repository":{"id":143988640,"uuid":"398508956","full_name":"callumc34/AudioPlusPlus","owner":"callumc34","description":"C++ open source audio playback \u0026 recording with file support.","archived":false,"fork":false,"pushed_at":"2022-09-26T02:32:41.000Z","size":282,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-29T10:29:23.719Z","etag":null,"topics":["audio","audio-player","cmake","cpp","library","open-source"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/callumc34.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2021-08-21T08:42:48.000Z","updated_at":"2023-07-18T23:59:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"0df162c0-a766-48d2-b125-9b211e548363","html_url":"https://github.com/callumc34/AudioPlusPlus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callumc34%2FAudioPlusPlus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callumc34%2FAudioPlusPlus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callumc34%2FAudioPlusPlus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callumc34%2FAudioPlusPlus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/callumc34","download_url":"https://codeload.github.com/callumc34/AudioPlusPlus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239690723,"owners_count":19681148,"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":["audio","audio-player","cmake","cpp","library","open-source"],"created_at":"2024-11-07T20:20:36.975Z","updated_at":"2025-12-18T01:30:15.161Z","avatar_url":"https://github.com/callumc34.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"logo/logo-big.png\" width=50%\u003e\n\u003c/p\u003e\n\n## About AudioPlusPlus\nAudioPlusPlus (A++) is an early development audio playback library designed for easy integration with any programs.\n\nA++ aims to be an easy to use and develop audio library that plugs straight into your program. It does all the interaction between many great open source audio libraries for you.\n\nA++ is currently in very early development stages. Please consider helping by checking out the [roadmap](https://trello.com/b/67YcKpif/audioplusplus). \n\n## How to build\nAudioPlusPlus can be built using CMake through the following steps.\n1. Clone this repository to your machine using `git clone https://github.com/callumc34/AudioPlusPlus` and move into the directory `cd AudioPlusPlus`\n2. Setup the build directory\n```bash\nmkdir build\ncd build\n```\n3. Install the dependencies for this project:\n\n### Windows\nThe preferred way to install dependencies on Windows is using [Microsoft's VCPKG](https://github.com/microsoft/vcpkg) manager.\n\nWhen running the following command, vcpkg will automatically install all the required dependencies.\n```bash\ncmake .. --toolchain [path to vcpkg]/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=[architecture-platform-static/dynamic(leave blank)]\n```\n\n### Linux\nFor linux the majority of these packages can be installed using the package manager.\n```bash\nsudo apt install doxygen libasound2-dev libsndfile-dev libflac-dev libogg-dev libtool libvorbis-dev libopus-dev libmp3lame-dev libmpg123-dev libtag1-dev\n```\n\n[PortAudio](https://github.com/portaudio/portaudio) is currently outdated on package manager and thus the most recent version must be manually built and installed.\n[SpdLog](https://github.com/gabime/spdlog) currently does not work when installed with package manager and thus must be manually built and installed.\n\n##### Note: These packages may be out of date and not provide full functionality - see alternative for a better option.\n\n### Alternative\nSome of the packages installed using the linux package manager may be out of date or lack full functionality.\n\nIt is recommended on linux that you manually build both portaudio and sndfile.\n\nThe program will output the urls of all the packages so that you can build them yourself.\n\n##### Note: CMake on windows can have trouble finding the installed packages - use the option `-DDEPENDENCIES_ROOT=[Path to install location of dependencies]` to aid CMake in finding them.\n\n4. Build the project\n```bash\ncmake --build .\ncmake --install .\n```\n\n## CMake Options - NOTE: Not all functionality is added yet\nYou can pass additional options with `-D\u003cparameter\u003e=\u003cvalue\u003e` when you run\n`cmake` command. Some useful system options:\n##### Finding dependency options\nIf you built your own dependencies and installed them using `cmake --install` on windows the best way to let CMake find the packages is with the following variables\n- `DEPENDENCIES_ROOT` - Install location of the following packages. On linux if the packages were installed to the default prefix CMake should be able to find them without the need for any variables.\n\nOr specify where to find each package individually\n- `FLAC_ROOT` - Install location of FLAC Package\n- `LAME_ROOT` - Install location of LAME files with structure `/include` and `/lib`\n- `MPG123_ROOT` - Install location of MPG123 Package\n- `OGG_ROOT` - Install location of OGG Package\n- `OPUS_ROOT` - Install location of OPUS package\n- `PORTAUDIO_ROOT` - Install location of PortAudio package\n- `SNDFILE_ROOT` - Install location of libsndfile package\n- `SPDLOG_ROOT` - Install location of spdlog package\n- `Vorbis_ROOT` - Install location of vorbis package\n- `TAGLIB_ROOT` - Install location of Taglib package\n\n##### Other options\n- `ENABLE_SNDFILE` - Build without using SndFile\n- `BUILD_EXAMPLES` - Builds the example programs\n- `ENABLE_PACKAGE_CONFIG` - Generate and install [package config file](https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#config-file-packages).\n- `INSTALL_PKGCONFIG_MODULE` - Generate and install [pkg-config module](https://people.freedesktop.org/~dbn/pkg-config-guide.html).\n- `BUILD_WITH_LOGGING` - Build with logging support (requires SpdLog)\n- `CMAKE_INSTALL_PREFIX` - build install location, the same as `--prefix` option\n  of `configure` script\n- `ENABLE_STATIC_RUNTIME` - enable static runtime on Windows platform (MSVC and\n  MinGW), `OFF` by default.\n- `BUILD_DOCUMENTATION` - Builds the doxygen documentation,\n\n## Examples\nCheck out the examples folder for how to integrate into your app.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallumc34%2Faudioplusplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcallumc34%2Faudioplusplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallumc34%2Faudioplusplus/lists"}