{"id":13419116,"url":"https://github.com/acoustid/chromaprint","last_synced_at":"2026-01-17T11:49:15.677Z","repository":{"id":41207470,"uuid":"1625818","full_name":"acoustid/chromaprint","owner":"acoustid","description":"C library for generating audio fingerprints used by AcoustID","archived":false,"fork":false,"pushed_at":"2026-01-15T12:28:55.000Z","size":2559,"stargazers_count":1186,"open_issues_count":30,"forks_count":162,"subscribers_count":35,"default_branch":"master","last_synced_at":"2026-01-15T16:52:55.039Z","etag":null,"topics":["acoustid","audio","audio-analysis","audio-fingerprinting","audio-processing","chromaprint"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acoustid.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.txt","contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2011-04-17T09:23:10.000Z","updated_at":"2026-01-15T14:01:01.000Z","dependencies_parsed_at":"2024-07-31T00:46:37.068Z","dependency_job_id":"0360c979-612c-4ded-af02-9708f87f8c7c","html_url":"https://github.com/acoustid/chromaprint","commit_stats":null,"previous_names":["lalinsky/chromaprint"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/acoustid/chromaprint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acoustid%2Fchromaprint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acoustid%2Fchromaprint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acoustid%2Fchromaprint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acoustid%2Fchromaprint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acoustid","download_url":"https://codeload.github.com/acoustid/chromaprint/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acoustid%2Fchromaprint/sbom","scorecard":{"id":163293,"data":{"date":"2025-08-11","repo":{"name":"github.com/acoustid/chromaprint","commit":"ac31acc8431defbb134ec54eb11daf9146c74170"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.2,"checks":[{"name":"Maintained","score":10,"reason":"19 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":3,"reason":"Found 4/13 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.5.1 not signed: https://api.github.com/repos/acoustid/chromaprint/releases/55873587","Warn: release artifact v1.5.0 not signed: https://api.github.com/repos/acoustid/chromaprint/releases/25513727","Warn: release artifact v1.4.3 not signed: https://api.github.com/repos/acoustid/chromaprint/releases/9322675","Warn: release artifact v1.4.2 not signed: https://api.github.com/repos/acoustid/chromaprint/releases/5028128","Warn: release artifact v1.4.1 not signed: https://api.github.com/repos/acoustid/chromaprint/releases/4898081","Warn: release artifact v1.5.1 does not have provenance: https://api.github.com/repos/acoustid/chromaprint/releases/55873587","Warn: release artifact v1.5.0 does not have provenance: https://api.github.com/repos/acoustid/chromaprint/releases/25513727","Warn: release artifact v1.4.3 does not have provenance: https://api.github.com/repos/acoustid/chromaprint/releases/9322675","Warn: release artifact v1.4.2 does not have provenance: https://api.github.com/repos/acoustid/chromaprint/releases/5028128","Warn: release artifact v1.4.1 does not have provenance: https://api.github.com/repos/acoustid/chromaprint/releases/4898081"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:130: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:131: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:148: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:161: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:176: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:205: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/acoustid/chromaprint/build.yml/master?enable=pin","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 26 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T14:10:03.240Z","repository_id":41207470,"created_at":"2025-08-16T14:10:03.247Z","updated_at":"2025-08-16T14:10:03.247Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28508459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T10:25:30.148Z","status":"ssl_error","status_checked_at":"2026-01-17T10:25:29.718Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["acoustid","audio","audio-analysis","audio-fingerprinting","audio-processing","chromaprint"],"created_at":"2024-07-30T22:01:11.552Z","updated_at":"2026-01-17T11:49:15.633Z","avatar_url":"https://github.com/acoustid.png","language":"C++","funding_links":[],"categories":["TODO scan for Android support in followings","C++","HarmonyOS","Music Recommendation \u0026 Discovery"],"sub_categories":["Windows Manager"],"readme":"# Chromaprint\n\nChromaprint is an audio fingerprint library developed for the [AcoustID][acoustid] project. It's designed to identify near-identical audio\nand the fingerprints it generates are as compact as possible to achieve that. It's not a general purpose audio fingerprinting solution.\nIt trades precision and robustness for search performance. The target use cases are full audio file identifcation,\nduplicate audio file detection and long audio stream monitoring.\n\n[acoustid]: https://acoustid.org/\n\n## Building\n\nThe most common way to build Chromaprint is like this:\n\n    $ cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TOOLS=ON .\n    $ make\n    $ sudo make install\n\nThis will build Chromaprint as a shared library and also include the `fpcalc`\nutility (which is used by MusicBrainz Picard, for example). For this to work,\nyou will need to have the FFmpeg libraries installed.\n\nSee below for other options.\n\n### FFT Library\n\nChromaprint can use multiple FFT libraries -- [FFmpeg][ffmpeg], [FFTW3][fftw], [KissFFT][kissfft] or\n[vDSP][vdsp] (macOS).\n\nFFmpeg is preferred on all systems except for macOS, where you should use\nthe standard vDSP framework. These are the fastest options.\n\nFFTW3 can be also used, but this library is released under the GPL\nlicense, which makes also the resulting Chromaprint binary GPL licensed.\n\nKissFFT is the slowest option, but it's distributed with a permissive license\nand it's very easy to build on platforms that do not have packaged\nversions of FFmpeg or FFTW3. We ship a copy of KissFFT, so if\nthe build system is unable to find another FFT library it will use\nthat as a fallback.\n\nYou can explicitly set which library to use with the `FFT_LIB` option.\nFor example:\n\n    $ cmake -DFFT_LIB=kissfft .\n\n[ffmpeg]: https://www.ffmpeg.org/\n[fftw]: http://www.fftw.org/\n[kissfft]: https://sourceforge.net/projects/kissfft/\n[vdsp]: https://developer.apple.com/reference/accelerate/1652565-vdsp\n\n### FFmpeg\n\nFFmpeg is as a FFT library and also for audio decoding and resampling in `fpcalc`.\nIf you have FFmpeg installed in a non-standard location, you can use the `FFMPEG_ROOT` option to specify where:\n\n    $ cmake -DFFMPEG_ROOT=/path/to/local/ffmpeg/install .\n\nWhile we try to make sure things work also with libav, FFmpeg is preferred.\n\n## API Documentation\n\nYou can use Doxygen to generate a HTML version of the API documentation:\n\n    $ make docs\n    $ $BROWSER docs/html/index.html\n\n## Unit Tests\n\nThe test suite can be built and run using the following commands:\n\n    $ cmake -DBUILD_TESTS=ON .\n    $ make check\n\nIn order to build the test suite, you will need the sources of the [Google Test][gtest] library.\n\n[gtest]: https://github.com/google/googletest\n\n## Related Projects\n\nBindings, wrappers and reimplementations in other languages:\n\n * [Python](https://github.com/beetbox/pyacoustid)\n * [Rust](https://github.com/jameshurst/rust-chromaprint)\n * [Ruby](https://github.com/TMXCredit/chromaprint)\n * [Perl](https://metacpan.org/pod/Audio::Chromaprint)\n * [Raku](https://github.com/jonathanstowe/Audio-Fingerprint-Chromaprint)\n * [JavaScript](https://github.com/parshap/node-fpcalc)\n * [JavaScript](https://github.com/bjjb/chromaprint.js) (reimplementation)\n * [Go](https://github.com/go-fingerprint/gochroma)\n * [C#](https://github.com/wo80/AcoustID.NET) (reimplementation)\n * [C#](https://github.com/protyposis/Aurio/tree/master/Aurio/Aurio/Matching/Chromaprint) (reimplementation)\n * [Pascal](https://github.com/CMCHTPC/ChromaPrint) (reimplementation)\n * [Scala/JVM](https://github.com/mgdigital/Chromaprint.scala) (reimplementation)\n * [Vala](https://github.com/GNOME/vala-extra-vapis/blob/master/libchromaprint.vapi)\n * [Swift](https://github.com/wallisch/ChromaSwift)\n\nIntegrations:\n\n * [FFmpeg](https://www.ffmpeg.org/ffmpeg-formats.html#chromaprint-1)\n * [GStreamer](http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/ext/chromaprint)\n\nIf you know about a project that is not listed here, but should be, please let me know.\n\n## Standing on the Shoulders of Giants\n\nI've learned a lot while working on this project, which would not be possible\nwithout having information from past research. I've read many papers, but the\nconcrete ideas implemented in this library are based on the following papers:\n\n * Yan Ke, Derek Hoiem, Rahul Sukthankar. Computer Vision for Music\n   Identification, Proceedings of Computer Vision and Pattern Recognition, 2005.\n   http://www.cs.cmu.edu/~yke/musicretrieval/\n\n * Frank Kurth, Meinard Müller. Efficient Index-Based Audio Matching, 2008.\n   http://dx.doi.org/10.1109/TASL.2007.911552\n\n * Dalwon Jang, Chang D. Yoo, Sunil Lee, Sungwoong Kim, Ton Kalker.\n   Pairwise Boosted Audio Fingerprint, 2009.\n   http://dx.doi.org/10.1109/TIFS.2009.2034452\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facoustid%2Fchromaprint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facoustid%2Fchromaprint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facoustid%2Fchromaprint/lists"}