{"_id":"@audio/mir-fingerprint","_rev":"5-5e4b63cb45c328206078bdd6773d26ae","name":"@audio/mir-fingerprint","dist-tags":{"latest":"1.1.3"},"versions":{"1.0.0":{"name":"@audio/mir-fingerprint","version":"1.0.0","keywords":["audio","dsp","mir","fingerprint","shazam","landmark"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/mir-fingerprint@1.0.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"4142ec4694d63a43c034a6075e071801244d97ed","tarball":"https://registry.npmjs.org/@audio/mir-fingerprint/-/mir-fingerprint-1.0.0.tgz","fileCount":2,"integrity":"sha512-SIdDvuuRbs0ozGbUAkjHWJByO0E0qYr+4HirQhPgQyGAGtU0RBbbzsYy/bXM39RAMqVTz++jlTrb0pmyEqmMEA==","signatures":[{"sig":"MEUCIFnXUkAhE38c9mYDo6oWEdWaMFCBkLImJdDiz66CjRGfAiEA+oOrjodUC2XqjKPwj60LJTPdXGQ1Y39dJpupGxEZicw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3448},"main":"fingerprint.js","type":"module","engines":{"node":">=18"},"exports":{".":"./fingerprint.js","./package.json":"./package.json"},"gitHead":"59e2811439a5d077fcfce741bae3e4090cecffe8","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Landmark fingerprinting — spectral peak constellation hashes + offset-vote matching (Wang 2003 class)","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mir-fingerprint_1.0.0_1783540383695_0.9097323698521129","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@audio/mir-fingerprint","version":"1.1.0","keywords":["audio","dsp","mir","fingerprint","shazam","landmark"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/mir-fingerprint@1.1.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"6268431f115547a969d2f00b338b11c2922c62e7","tarball":"https://registry.npmjs.org/@audio/mir-fingerprint/-/mir-fingerprint-1.1.0.tgz","fileCount":3,"integrity":"sha512-JtJwFHxmHVHtnceXDipJrkDCbhUHeJSOiJuV8tw0gmPzpehumVTbMJcmlmmf2Q6fmTxzqkMiimTNMrdGj47frw==","signatures":[{"sig":"MEYCIQDHPGNAHDtsCGqcprUqnkSIXGjwUGMtJ63QHTG1BforsQIhANKeSE5CaQg9ESIEZCFYQmfRtY2z0t/mw0by0inSMSl7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3994},"main":"fingerprint.js","type":"module","engines":{"node":">=18"},"exports":{".":"./fingerprint.js","./stat":"./stat.js","./package.json":"./package.json"},"gitHead":"6623c86ac3c629314143d5df1ec488783d26bdc9","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Landmark fingerprinting — spectral peak constellation hashes + offset-vote matching (Wang 2003 class)","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mir-fingerprint_1.1.0_1783635227481_0.6631390567336051","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@audio/mir-fingerprint","version":"1.1.1","keywords":["audio","dsp","mir","fingerprint","shazam","landmark"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/mir-fingerprint@1.1.1","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"61e3073ead6e3cd49d7b0fe0ae7e72423e13ef15","tarball":"https://registry.npmjs.org/@audio/mir-fingerprint/-/mir-fingerprint-1.1.1.tgz","fileCount":3,"integrity":"sha512-mGrcL4Px/J1wmvx65fvti3RIhxhHvcNfjJtMuArN6PQFU9WgHaZny9n0lz7UB0iQTW1bkGCunZnNecGMKKqv8g==","signatures":[{"sig":"MEUCIEn1tN7pbPLzvsUjpz6RNkBQHci2ZhzPBHbTRkTY3K+zAiEA843i083fxSNK0ntse3G+C4d/WXgaW3SLnFDqjYaEQp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4022},"main":"fingerprint.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./fingerprint.js","./audio":"./audio.js","./package.json":"./package.json"},"gitHead":"c8329c9ec6cd79f0a16a922bd8270de827441a84","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Landmark fingerprinting — spectral peak constellation hashes + offset-vote matching (Wang 2003 class)","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mir-fingerprint_1.1.1_1783644979397_0.3446226986487937","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@audio/mir-fingerprint","version":"1.1.2","keywords":["audio","dsp","mir","fingerprint","shazam","landmark"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/mir-fingerprint@1.1.2","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"9a15d556648c955babdf2ff0e8950974e2ce9e7c","tarball":"https://registry.npmjs.org/@audio/mir-fingerprint/-/mir-fingerprint-1.1.2.tgz","fileCount":4,"integrity":"sha512-X/z8ls3kmNHPYUxdiYsN+9duZQc0uvbfTuEqZNuFqN23ixhnhQa0O7XLOzcfl6S3EzscGs6ZIFbZHE2KOBBfhg==","signatures":[{"sig":"MEQCIF7bijh3sLXHsJMhzLYViFUwpGl2IPQu69+FtrNoIkAOAiAgcHkJqUWriz+y2IQAY1+cXnUxQgDFUP7j+IAw/MKuxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5119},"main":"fingerprint.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./fingerprint.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"gitHead":"d4fe4b5049989b7900c4b734f72dfd381ad8c23f","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Landmark fingerprinting — spectral peak constellation hashes + offset-vote matching (Wang 2003 class)","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mir-fingerprint_1.1.2_1783701760391_0.7763966920104293","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@audio/mir-fingerprint","version":"1.1.3","description":"Landmark fingerprinting — spectral peak constellation hashes + offset-vote matching (Wang 2003 class)","type":"module","sideEffects":false,"main":"fingerprint.js","exports":{".":"./fingerprint.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"dependencies":{"fourier-transform":"^2.2.0"},"keywords":["audio","dsp","mir","fingerprint","shazam","landmark"],"license":"MIT","author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"audio":"./audio.js","repository":{"type":"git","url":"git+https://github.com/audiojs/mir.git","directory":"packages/mir-fingerprint"},"funding":"https://github.com/sponsors/audiojs","types":"index.d.ts","gitHead":"92646d93d32b77e5219d245361ffbcb361ff683e","_id":"@audio/mir-fingerprint@1.1.3","bugs":{"url":"https://github.com/audiojs/mir/issues"},"homepage":"https://github.com/audiojs/mir#readme","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-yoE3Lm0xa1eqaY+7aUmUAsKEYZWx/7FOEwXoZ32o3Aj7iJnAFi1psexioyuEVTNjO2D8NjZECR3R50g0XSt15Q==","shasum":"75bbaec584f64616a33adbc3aa35b24b4e5e192f","tarball":"https://registry.npmjs.org/@audio/mir-fingerprint/-/mir-fingerprint-1.1.3.tgz","fileCount":6,"unpackedSize":7987,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGANpjPZmlfl+BSaSMKSnSIaqzSeeUOzI9t2m6Eu0AS4AiBhx5VxUJB/ILxm9klq7ZA6x1nuO9nKi8xfiREzv1h5tw=="}]},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"directories":{},"maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mir-fingerprint_1.1.3_1783731679256_0.1360414197626052"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-08T19:53:03.567Z","modified":"2026-07-11T01:01:19.552Z","1.0.0":"2026-07-08T19:53:03.857Z","1.1.0":"2026-07-09T22:13:47.633Z","1.1.1":"2026-07-10T00:56:19.519Z","1.1.2":"2026-07-10T16:42:40.521Z","1.1.3":"2026-07-11T01:01:19.396Z"},"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","keywords":["audio","dsp","mir","fingerprint","shazam","landmark"],"description":"Landmark fingerprinting — spectral peak constellation hashes + offset-vote matching (Wang 2003 class)","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# @audio/mir-fingerprint\n\n> Landmark audio fingerprinting (Wang 2003, Shazam class) — spectrogram peak constellation → anchor→target hashes `(f1, f2, Δt)` → matching by offset-histogram vote. Robust to noise and level; exact-match identification, not similarity.\n\n`npm install @audio/mir-fingerprint`\n\n```js\nimport fingerprint, { match } from '@audio/mir-fingerprint'\n\nlet fp = fingerprint(data, { fs: 44100 })\n// Array<{ hash: number, t: number }> — t in frames (frame = hop/fs seconds)\n\nlet r = match(fpA, fpB)\n// { score: number (votes for the best time offset), offset: number (frames, b within a) }\n```\n\n`fingerprint()` finds prominent spectral peaks per frame (magnitude > 4× the frame mean and a local max), keeps the strongest `peaksPerFrame`, then pairs each peak as an anchor with up to `fanout` forward peaks within `window` frames — each pair becomes one hash landmark.\n\n`match()` builds a hash→time index from `fpA`, then for every `fpB` landmark with a matching hash accumulates a histogram of time offsets; the offset with the most votes is the alignment, and its vote count is the match confidence. A near-duplicate clip scores high at one dominant offset; unrelated audio spreads votes thinly across many offsets.\n\nOptions: - `fs` — sample rate (default 44100, Hz) · `frameSize` — analysis window, samples (default 1024) · `hop` — frame hop, samples (default 512) · `peaksPerFrame` — kept peaks per frame (default 5) · `fanout` — target peaks paired per anchor (default 5) · `window` — max anchor→target Δt, frames (default 32)\n\nAlso exported as an `audio.js` stat manifest (`./audio`).\n\nPart of [@audio/mir](https://github.com/audiojs/mir).\n","readmeFilename":"README.md","homepage":"https://github.com/audiojs/mir#readme","repository":{"type":"git","url":"git+https://github.com/audiojs/mir.git","directory":"packages/mir-fingerprint"},"bugs":{"url":"https://github.com/audiojs/mir/issues"}}