Upload one reference audio file, scan a folder, and Sakarto finds everything that matches its timbral character using Meyda.js MFCC fingerprinting. The reference card is always pinned first — protected from move or delete — and matches appear once the full scan completes.
🔒
100% Private — Your Audio Files Never Leave Your ComputerAll MFCC computation runs in your browser via Meyda.js and the Web Audio API. No uploads, no accounts, no tracking. Close the tab and all data is gone.
🔁 What Is Reverse Audio Search?
Reverse Audio Search is the audio equivalent of reverse image search. Instead of scanning a folder and automatically grouping everything that sounds alike, you choose one specific audio file as your reference, then Sakarto scans a folder to find everything with a similar timbral fingerprint.
Use it when you already know what recording you're looking for — for example: "find all copies and re-encoded versions of this specific podcast episode or voice memo."
🎵One Reference Track
Upload a single audio file. Sakarto processes it immediately and displays a player so you can verify you picked the right file.
📁Scan Any Folder
Select a folder and Sakarto extracts MFCCs from every audio file in it using Meyda.js, then compares each against your reference using Euclidean distance.
⚡Fast Scanning
Only the first 10 seconds of each file are analysed, so scanning is typically under 1 second per file. Very large folders complete in seconds rather than minutes.
🛡️Reference is Protected
The reference card is pinned first with a blue REFERENCE badge. It can never be accidentally moved or deleted.
🧠 How the Meyda MFCC Algorithm Works
Both the duplicate finder and this reverse search use the same Meyda.js MFCC pipeline. The difference is what gets compared to what: here, every folder file is compared against your reference only — not against each other.
1
Load Meyda.js & Process the Reference File Immediately
When you select your reference audio, Sakarto processes it right away using Meyda.js — decodes the first 10 seconds at 22,050 Hz, splits into 512-sample frames (hop 256), and extracts 13 MFCCs per frame via Meyda.extract("mfcc", frame). A preview player appears so you can confirm you chose the right file.
2
Decode Each Folder File at 22,050 Hz, First 10 Seconds Only
For each audio file in the folder, the browser decodes the first 10 seconds at 22,050 Hz. Only the left channel (channel 0) is used. Files over 100 MB are skipped. The reference file itself is skipped if it also appears inside the scanned folder (matched by name + size + date).
3
Extract MFCCs for Each Folder File
Each folder file's 10-second sample is split into 512-sample frames (hop 256). For each frame, Meyda.extract("mfcc", frame) computes 13 Mel-Frequency Cepstral Coefficients by mapping the spectrum to the Mel scale, taking the log, and applying a Discrete Cosine Transform.
4
Align Sequences & Compute Average Euclidean Distance
The shorter of the two MFCC sequences determines the alignment length. For each corresponding pair of 13-element vectors, the Euclidean distance is computed — measuring the straight-line distance between the two points in 13-dimensional MFCC space. These per-frame distances are averaged to produce a single distance value for the file pair.
5
Apply Threshold & Duration Pre-Check
A duration pre-check first rejects any folder file shorter than 50% of the reference duration. For the remaining files, if the average Euclidean distance is at or below the threshold set by the slider, the file is added to the results list as a match. Files above the threshold are silently skipped.
6
Reference Pinned First, Matches Shown After Full Scan
Unlike the duplicate finder (which shows groups live), reverse search completes the full folder scan first, then displays all matches together. The reference card is pinned at position 0 with a blue REFERENCE badge. All matching files appear after it. The result count shows how many similar files were found.
💡
Why compare everything against the reference? In the duplicate finder, every file is compared against every other file (O(n²) comparisons). In reverse search, each file is compared against only the reference (O(n) comparisons) — much faster. Combined with the 10-second analysis window, MFCC reverse search is the fastest of all three audio search modes in Sakarto.
🎚️ The MFCC Distance Threshold Slider
The MFCC Distance Threshold slider (5–50) controls how closely folder files must match your reference to appear in results. Lower values are stricter. Adjusting after a scan re-filters results instantly without re-scanning.
Low values (5–10) — Very strict
Only near-identical files match. Use for exact copies, same recording at different bitrates, or lossless vs. lossy exports of the same master. Very few or no false positives.
Medium values (11–25) — Balanced (default: 15)
Catches re-encoded versions, different bitrates, and recordings with similar vocal or timbral character. A good starting point for spoken-word and podcast searches.
High values (26–50) — Loose
Groups files with broadly similar timbral character. Useful for finding recordings from the same room or microphone. Expect more false positives — always listen before deleting.
⚡
Re-filtering is instant. When you adjust the slider and release it, the already-extracted MFCC sequences are re-compared against the reference immediately — no re-scanning needed. The scan only runs once per session.
⚖️
Linear scale. Slider value 15 = maximum average Euclidean distance of 15.0. Each step of 1 is one unit of Euclidean distance in 13-dimensional MFCC space. Lower values are stricter — the same direction as Hamming distance sliders.
✅ What It Finds — and What It Might Miss
✅ Finds Well
The reference track at different bitrates (320k vs 128k MP3)
Lossless vs. lossy exports of the same master (WAV vs MP3)
Re-encoded copies in different formats (WAV → MP3)
Duplicate podcast episodes at different quality settings
The same speaker re-recorded in the same acoustic environment
Sound effects saved at multiple quality levels
⚠️ May Struggle With
Covers or re-performances (different instrument or singer)
Recordings where similarity only starts after the 10-second mark
Music with varied or complex instrumentation
Very short clips (under ~5 seconds)
Files with very different duration vs. reference
Heavy noise or severe codec artifacts
💡
For music where you want to find harmonically similar recordings or covers, try Essentia HPCP Reverse Search instead. For exact re-encodes of music files, Chromaprint Reverse Search is faster and requires no CDN library.
🛡️ How the Reference File is Protected
✅ You Can
Click the reference card to select it
Ctrl+Click it to add to compare
Play it using the built-in player
Preview it full-size with the 🔍 icon
Copy its filename to clipboard
Right-click to access Copy and Compare
🚫 You Cannot
Move the reference file
Delete the reference file
Add it to the move or delete queue
Use the toolbar Move/Delete on it
Right-click Move or Delete (grayed out)
Select it for queue operations
▶️ The Custom Audio Player
Every audio card has a built-in player. Here's how to use it:
All audio player controls and their functions
Control
What it does
▶️ Play button
Starts playback. Automatically pauses any other playing track on the page.
⏸️ Pause button
Pauses playback. Audio position is remembered.
Progress bar
Click anywhere on the bar to seek to that position. Drag left/right to scrub.
🔊 / 🔇 Mute button
Mutes or unmutes this individual track.
🔇 Audio (toolbar)
Mutes or unmutes all audio on the page at once.
Time display
Shows current position / total duration (e.g. 1:23 / 3:45).
← / → arrow keys
When the progress bar is focused, seeks backward or forward 5 seconds.
💡
Exclusive playback. When you press play on any card, all other currently-playing tracks pause automatically. This makes it easy to audition multiple candidates one by one.
📋 Step-by-Step: How to Use Reverse Audio Search
Step 1
Select Your Reference Audio File
Click Choose Reference Audio. Select any audio file. Sakarto processes it immediately using Meyda.js — a preview player with the purple art background appears so you can play and confirm you chose correctly. Only the first 10 seconds are processed, so this is near-instant.
Supported formats: MP3, WAV, FLAC, OGG, M4A, AAC. Files over 100 MB are not supported as reference files.
💡
The reference file does not need to be inside the folder you're about to scan. Sakarto skips it automatically if it also appears inside the scanned folder (matched by name + size + date).
Step 2
Select the Folder to Search
Once a reference file is loaded, Choose Folder to Search becomes active. Click it to open a native folder picker (Chrome / Edge). Or drag and drop a folder directly onto the page.
The folder count shows how many files were found. The Start Search button activates only when both a reference file and a folder are selected.
Step 3
Start the Search
Click 🔍 Start Search. A progress bar shows how many files have been processed. Audio processing runs fully in the background — you can switch browser tabs freely without pausing the scan.
Once the scan completes, the reference card appears at position 0 (blue REFERENCE badge) followed by all matching files sorted by closeness to the reference. The result count shows how many similar files were found.
Step 4
Adjust the MFCC Distance Threshold
Use the MFCC Distance Threshold slider above the results to tune sensitivity. Releasing the slider re-filters results instantly without re-scanning. Start at the default of 15 and adjust based on results.
Step 5
Listen & Review Results
Every card has a built-in player. Use it to listen and confirm similarity before taking action. Playing one track automatically pauses all others.
Click a card to select it (blue border)
Ctrl+Click (Cmd+Click on Mac) to add to the compare list (purple border)
Click the 🔍 icon on hover to open full-size preview with a modal player
Right-click any card for the context menu (Move/Delete disabled on the reference card)
Click & drag on empty space to box-select multiple match cards
Step 6
Compare Reference vs. Match Side-by-Side
Ctrl+Click the reference card and one or more match cards, then click ⚖️ Compare. A modal opens with a player per file, full metadata (duration, size, type, path), and a similarity percentage. For 3+ files, a pairwise similarity matrix is shown.
The reference card in the compare modal shows only a Copy Name button — no Move or Delete — to keep it protected.
Step 7
Act on Matches — Move or Delete
Select match cards (not the reference — it's protected) and use the toolbar. With Queue Mode on (recommended), files are staged first:
📋 CopyCopy filename(s) to clipboard
📂 MoveStage for move to Audio-Duplicates folder
🗑️ DeleteStage for permanent deletion
⚖️ CompareListen and view metadata side-by-side
⚠️
Deletions are permanent. The File System Access API bypasses the recycle bin. Use Queue Mode to review before executing. The reference file cannot be deleted or moved.
Step 8
Queue Mode — Review Before You Commit
With Queue Mode enabled (default), clicking Move or Delete stages files in the Move Queue or Delete Queue tab. Switch to those tabs in the sidebar, listen to each file, remove any you change your mind about, then execute. The default destination folder is Audio-Duplicates, created inside your scanned folder.
🏛️ Quick Reference — All Controls
All toolbar buttons and keyboard shortcuts for reverse audio search
Button / Control
What it does
Choose Reference Audio
Select the audio file to search for. Player preview appears immediately.
Choose Folder to Search
Select the folder to scan. Activates once reference is loaded.
🔍 Start Search
Begin scanning. Processes all folder files, then shows all matches.
MFCC Distance Threshold slider
Adjusts matching strictness (5–50, lower = stricter). Re-filters on release without re-scanning.
🔄 New Search
Reload the page and start fresh with a new reference file
📋 Copy (N)
Copy selected filenames to clipboard. N = count.
📂 Move (N)
Move match files or stage them in Move Queue (reference excluded)
🗑️ Delete (N)
Delete match files or stage in Delete Queue (reference excluded)
✕ Deselect All
Remove selection from all cards
⚖️ Compare (N)
Open compare modal for Ctrl+clicked files. Needs 2+.
🔇 Audio
Mute / unmute all audio players on the page
Queue Mode checkbox
Stage files for review before executing. Recommended on.
Click card
Select / deselect the card
Ctrl + Click card
Add / remove from compare list (purple border)
Click & drag (empty area)
Box-select multiple match cards
Right-click card
Context menu: Copy / Move / Delete / Compare. Move & Delete disabled on reference.
🔍 hover icon
Open full-size preview with modal player. Reference shown as REFERENCE.
▶️ on player
Play audio. Pauses all other players on page automatically.
💡 Tips for Best Results
💾
Back Up First
Always back up your audio library before deleting anything. Deleted files bypass the recycle bin and cannot be recovered.
🎧
Use the Best Quality Reference
Use the highest-quality version of the file as your reference — a lossless WAV or high-bitrate MP3. A heavily compressed reference may produce slightly different MFCC profiles, leading to missed matches.
🎚️
Start at Default 15
The default of 15 is well-calibrated for most spoken-word and voice content. If expected matches are missing, raise the slider toward 20–25. If too many unrelated files appear, lower it toward 8–10.
⚖️
Listen Before Acting
Use the built-in players to audition reference and match side-by-side. MFCC captures timbral texture, not pitch — always listen to confirm it is truly the same recording before deleting.
📂
Best for Voice & Podcast Content
MFCC reverse search works best when your reference is a voice recording, podcast episode, or sound effect. For music matching, Essentia HPCP is more reliable.
🧪
No Matches? Try a Higher Threshold
If Meyda MFCC finds nothing, raise the Distance Threshold toward 20–30. If copies still don't appear, the similarity may start after 10 seconds — try Chromaprint or Essentia HPCP which analyse the full track.
⚠️ Known Limitations
🎵
Only the first 10 seconds of each file are analysed.
To keep scanning fast, MFCC only processes the first 10 seconds of each folder file. If your reference's timbral character only appears after 10 seconds, it will not be found. This is by design for speed; use Chromaprint or Essentia HPCP for full-track analysis.
↩️
No undo for file deletion.
The File System Access API bypasses the OS recycle bin entirely. Use Queue Mode to review files before executing any delete operation.
🔀
Single folder at a time.
You can't scan two separate folders in one session. Workaround: scan their common parent directory so both are included.
📊
Meyda.js requires network access to load.
Meyda.js v5.6.3 is loaded from cdn.jsdelivr.net at page load. If this CDN is blocked, scanning will fail. Check the browser console for load errors. Chromaprint requires no external library.
📱
Move and Delete require Chrome or Edge.
The File System Access API is only available in Chrome 86+ and Edge 86+. Firefox and Safari can scan and display results but cannot move or delete files.
🔒 Privacy & Security
✅
Only Meyda.js loads from the network. One script file loads from cdn.jsdelivr.net at page load. After that, all audio decoding and MFCC computation run locally. Open DevTools → Network tab during a scan: zero outbound requests.
✅
No accounts, no cookies, no analytics. Only your Queue Mode preference is stored in localStorage. No file names, paths, or MFCC data are ever saved or transmitted.
✅
Folder access is scoped and session-only. Browser permission covers only the folder you selected, lasts only while the tab is open, and can be revoked from browser site settings at any time.
✅
Purely static — no backend. Sakarto is HTML, CSS, and JavaScript. No server, no database, and no API endpoint receives any data from you.
❓ Frequently Asked Questions
Does my reference file need to be inside the folder I'm scanning?▼
No — pick it from anywhere on your computer. If it also exists inside the scanned folder, Sakarto detects and skips it automatically using filename, file size, and last-modified date matching. The reference card is always pinned at position 0 as a separate element and is never treated as a scan result, even if Sakarto finds an identical file in the folder.
Meyda only analyses 10 seconds — what if my reference and the copies sound different in the opening?▼
This is the main edge case to watch for. If your reference has an atypical intro — a jingle, intro music, or silence before the main content — and the copies in the folder jump straight to the main content, the MFCC profiles of their first 10 seconds will differ even though the rest of the audio matches. In this case, the match may not appear. The practical fix is to use a reference file that starts with the characteristic content you're looking for — trim the intro if needed, or switch to Chromaprint which analyses the full track and is more resilient to intro differences.
My reference is a podcast episode. How do I find all the copies in different formats in my folder?▼
Meyda MFCC is the best algorithm for this use case. Use a threshold of 10–15 for strict matching (re-encodes of the exact same episode in different formats) or 18–22 if you want to also catch copies with slight audio processing applied. Make sure the reference starts with the actual podcast content rather than a long intro jingle. If the folder copies have very different bitrates (<96 kbps), try raising the threshold to 18–20 to account for the extra compression artifacts in their MFCC profiles.
The same recording in WAV and MP3 isn't matching my reference. What should I try?▼
Raise the MFCC Distance Threshold slider toward 18–22. MP3 compression modifies the spectral envelope slightly, which affects the MFCC coefficients. A threshold of 15–20 covers most lossless vs. lossy pairs. Also check both files have similar duration to the reference — the duration pre-check excludes files shorter than 50% of the reference length. If the format is heavily compressed (below 96 kbps), you may need a threshold as high as 25.
No matches found even though I can hear copies of my reference in the folder. What should I check?▼
Work through this checklist: first, raise the threshold gradually from 15 toward 25–30. Second, check that candidate files have similar duration to the reference (the pre-check excludes files shorter than 50%). Third, check whether the reference starts with representative content or an atypical intro — only the first 10 seconds are compared. Fourth, consider whether the copies sound similar to the reference only in pitch or melody rather than timbre: Meyda MFCC matches timbral texture, not musical notes. If the copies are musically similar but played on different instruments, try Essentia HPCP. For full-track spectral matching, try Chromaprint.
What kind of reference file works best with Meyda MFCC?▼
A clean recording that starts with the characteristic sound you're searching for. Voice recordings work best when the speaker starts speaking within the first second or two. For sound effects, use the full effect without long silence before it. Avoid reference files with long intro jingles or music beds before the main content if you want to match copies that don't have those elements. Format-wise, higher quality (lossless or high-bitrate) produces cleaner MFCC coefficients, but the algorithm is tolerant enough that a good 192k or 256k MP3 reference works well in practice.
Why does the reference player appear before I've picked a folder?▼
Meyda processes the reference audio immediately on upload — extracting its 13 MFCC coefficients from the first 10 seconds straight away. The player appears so you can confirm the right file was selected and listen to the first 10 seconds that will be used as the matching fingerprint. The fingerprint is fully computed and ready before you select a folder, so scanning begins immediately once you pick one.
Can I find copies of a sound effect reference file using Meyda?▼
Yes — sound effects are a strong use case for Meyda MFCC. The timbral texture of a sound effect (footsteps, rain, door slam, etc.) is captured well by MFCCs and stays consistent across different export formats and quality settings. Use a threshold of 10–15 for strict matching. One caveat: very short sound effects under 2 seconds produce sparse MFCC data from only a few frames, which can make matching less reliable. For very short clips, Chromaprint may give more consistent results.
Can I recover files after deleting them?▼
No. Sakarto's remove() call via the File System Access API permanently deletes files without going through the OS Recycle Bin. The reference file is fully protected and can never be deleted or moved regardless. For matched files, always use Queue Mode: stage them, play each one in the built-in player, compare it against the reference in the Compare modal, and only execute the deletion when you're certain it's a true copy you no longer need.