← Back to blog

Three Ways to Hear a Duplicate: A Field Guide to Sakarto's Audio Algorithms

Sakarto offers 3 distinct audio fingerprinting algorithms: Chromaprint, Essentia HPCP, and Meyda MFCC. We break down when to use each one—so you never waste time on the wrong tool again.

Sakarto audio duplicate finder interface showing 3 algorithms and built-in audio players

If you rely on byte-for-byte matching to find duplicate audio files, you’re missing almost every copy that actually matters. A 320 kbps MP3 and its 128 kbps re‑encode share almost no bytes at the bit level. A live recording and its studio version are acoustically different in every measurable way—unless you’re measuring the right thing.

That’s why audio duplicate finders use perceptual fingerprinting. But unlike image hashing—where algorithms broadly converge on similar techniques—audio fingerprinting branches into fundamentally different approaches. Some measure spectral shape. Some measure harmonic content. Some measure timbral texture. The right choice depends entirely on what kind of audio you’re cleaning up.

Sakarto gives you three distinct audio algorithms. Each one solves a different problem. Each one has a different blind spot. This is a field manual for choosing the right one.


Quick decision: which audio algorithm?

My reference/copies are…Use this algorithm
Same track, different bitrate (320k vs 128k)Chromaprint
Same track in different formats (MP3, FLAC, M4A)Chromaprint
Lossless vs lossy exports of the same masterChromaprint
Covers, live recordings, different performancesEssentia HPCP
Same song in a different key (transposition)Essentia HPCP
Podcasts, voice memos, speech, sound effectsMeyda MFCC
Very large folder, fastest possible scanChromaprint or Meyda

The three dimensions of audio similarity

Audio duplicates can hide in three different ways:

  1. Same recording, different codec or bitrate — the 320 kbps MP3, the 128 kbps MP3, and the lossless FLAC all came from the same master. They sound identical to most ears, but their waveforms are significantly different.

  2. Same song, different performance — a cover version, a live recording, a remix, or a transposition. The notes are the same; the sound is different.

  3. Same speaker or sound source, different content — the same podcaster’s voice across multiple episodes, or the same sound effect applied in different contexts. The timbre is the same; the content is different.

Sakarto’s three algorithms map directly to these three dimensions.


Chromaprint — spectral fingerprinting for the real world

Chromaprint is the workhorse of Sakarto’s audio toolkit. It’s a pure‑JavaScript spectral fingerprinting algorithm inspired by the system used by MusicBrainz and AcoustID. It has no external dependencies—no CDN, no WebAssembly—and works completely offline.

The algorithm resamples every track to 11,025 Hz mono, divides it into frames, applies a Hann window, computes the FFT, and sums the energy into 16 frequency bands. Then it compares each band to its neighbours: is this band louder than the band to its right? The result is a 15‑bit sub‑fingerprint per frame. The full fingerprint is the concatenation of all frames, and two files are compared by counting how many bits differ (Hamming distance).

What Chromaprint actually measures: the overall “shape” of the sound spectrum at each moment. It’s not listening to musical notes; it’s listening to which frequency bands are louder than others. This makes it incredibly stable across bitrate changes, codec differences, and minor level adjustments—because those changes affect the absolute values of the spectrum, but rarely change which bands are louder than their neighbours.

What Chromaprint misses: harmonic similarity across different performances. A cover version of a song often has a completely different spectral shape—different instruments, different mixing, different room acoustics. Chromaprint might still catch it at very loose thresholds, but it’s not designed for that.

Use it when: You have the same recording in multiple formats (MP3, FLAC, M4A), different bitrates (320k vs 128k), or slightly different levels. It’s the fastest algorithm and the best starting point for any music library cleanup.

Links: Find Duplicates (Chromaprint) · Reverse Audio Search (Chromaprint)


Essentia HPCP — harmonic content for covers and live recordings

Essentia HPCP is the specialist. It uses Essentia.js loaded as WebAssembly to compute a 12‑bin Harmonic Pitch Class Profile per frame at 44,100 Hz. HPCP measures which of the 12 pitch classes (C, C#, D, D#…) are present and how strongly at each moment. It’s essentially a high‑resolution musical “chord fingerprint” that tracks harmonic structure over time.

Two files are compared using cosine similarity—the angle between their average HPCP vectors. If two performances share the same harmonic content (the same notes, the same chord progressions), their HPCP vectors will be close regardless of timbral differences.

What Essentia actually measures: the musical content of the audio. It hears the notes being played, not the sound of the instruments playing them. A grand piano playing a C major chord and a distorted electric guitar playing the same C major chord produce wildly different waveforms—but they produce very similar HPCP fingerprints.

What Essentia misses: audio without strong harmonic content. Spoken word, podcasts, sound effects, and atonal music don’t have clear pitch classes, so HPCP gives a weak and unreliable signal. It also struggles with transpositions—if the same song is played in a different key, the pitch classes shift, and the fingerprint changes significantly.

The threshold direction is inverted: for Essentia HPCP, higher = stricter (cosine similarity must be ≥ threshold). The slider range is 0 to 1.0, with 0.9 being very strict and 0.7 being more permissive.

Use it when: You’re looking for cover versions, live recordings, or any two performances of the same song where the harmonic structure is preserved but the sound is different. It’s the only algorithm that reliably handles this use case.

Links: Find Duplicates (Essentia HPCP) · Reverse Audio Search (Essentia HPCP)


Meyda MFCC — timbral texture for speech and sound effects

Meyda MFCC takes a completely different approach. Instead of spectral shape or harmonic content, it measures timbral texture. MFCCs (Mel‑Frequency Cepstral Coefficients) were originally developed for speech recognition, and they capture the perceptual “colour” of sound—what makes a violin sound different from a piano on the same note, or what makes one person’s voice recognisably different from another’s.

The algorithm uses Meyda.js to compute 13 MFCCs per frame at 22,050 Hz. Crucially, it only analyses the first 10 seconds of each file. This is a deliberate choice: it makes the algorithm extremely fast, especially for long files like podcasts. Two files are compared using Euclidean distance between their average MFCC vectors.

What Meyda actually measures: the shape of the spectral envelope—how energy is distributed across frequencies, warped to the Mel scale (which matches human hearing perception). It captures the resonant characteristics of the sound source: the singer’s vocal tract, the guitar’s body, the room acoustics.

What Meyda misses: harmonic content and melody. Two different songs played on the same instrument in the same room will produce very similar MFCC fingerprints, even if they’re completely different music. It’s not pitch‑aware.

The 10‑second window: Meyda only analyses the first 10 seconds. This is fast, but it means two files that start differently but become identical later might be missed. If you’re working with files that have different intros, Chromaprint is a better choice.

Use it when: You’re cleaning up a podcast folder, voice memos, or sound effects libraries. It’s also useful for identifying different recordings of the same speaker or the same instrument—even when they’re saying or playing different content.

Links: Find Duplicates (Meyda MFCC) · Reverse Audio Search (Meyda MFCC)


Why not just use one algorithm?

The temptation is to pick the “best” algorithm and stick with it. That works if your audio duplication problem is narrow—maybe you only ever deal with different bitrates of the same master, or you only ever work with podcasts. But real audio libraries are messy. They contain music, speech, sound effects, and field recordings all mixed together.

Sakarto doesn’t force you to choose one. You can run a scan with Chromaprint, review the results, then switch to Essentia HPCP for a subfolder of live recordings, or Meyda MFCC for a folder of podcasts. The algorithms are independent tools, not competing standards. Pick the right tool for the specific mess you’re cleaning up.


Quick reference: all 3 algorithms at a glance

AlgorithmBest forSpeedExternal libraryLink
ChromaprintRe-encoded tracks, different bitratesFastestNone — pure JSFind · Reverse
Essentia HPCPCover versions, live recordingsModerateEssentia.js (CDN)Find · Reverse
Meyda MFCCSpeech, podcasts, sound effectsFastMeyda.js (CDN)Find · Reverse

Under the hood: background processing and CDN dependencies

Audio scanning in Sakarto behaves differently from image and video scanning. The Web Audio API, which Sakarto uses for decoding and analysis, is not subject to the same aggressive throttling as video decoding. Audio processing continues at full speed regardless of tab focus. You can switch to another tab, browse the web, and Sakarto keeps scanning in the background.

Chromaprint is pure JavaScript—no external dependencies, no CDN, works completely offline. Essentia HPCP and Meyda MFCC load their respective libraries (Essentia.js and Meyda.js) from CDN on first use. They’re cached after the initial load, so subsequent scans work offline. The initial WASM load for Essentia takes about 2–4 seconds.

All three algorithms process files in memory using OfflineAudioContext. No audio data is written to disk. No audio data is transmitted anywhere. Open DevTools → Network tab during any scan and you’ll see zero outbound requests—just the same static assets that loaded when the page opened.


The verdict

Sakarto’s audio duplicate finder is a three‑tool kit, not a single tool. Each algorithm addresses a different class of audio duplication problem:

  • Chromaprint is the general‑purpose workhorse. It handles re‑encoded tracks, different bitrates, and format conversions with no CDN dependencies and no tab‑switching pauses. Start here for any music library cleanup.

  • Essentia HPCP is the specialist for harmonic content. It finds cover versions, live recordings, and any two performances that share the same notes—even when the sound is completely different.

  • Meyda MFCC is the timbre expert. It finds the same speaker, the same instrument, or the same sound effect—even when the content is different. Essential for podcasts, voice memos, and sound effects libraries.

If you’re unsure where to start: run Chromaprint first. It’s the fastest, most versatile, and works completely offline. If Chromaprint misses obvious duplicates that sound similar but are structurally different (covers, live recordings), try Essentia HPCP. If you’re working with speech or sound effects, Meyda MFCC will give you better results than either of the other two.


Ready to clean up your audio library?

July 14, 2026
⏱ 10 min read
🇬🇧 English