Give SoundPrint a few seconds of sound and it tells you which known track it is, where in the track it is, how sure it is, and where one song ends and the next begins.
SoundPrint is a free, open-source audio fingerprinting library for .NET from Panoramic Data. It is built for continuous streams, such as a radio station recorded around the clock, and works just as well on single clips.
Try it in your browser
The SoundPrint demo runs the whole library inside your browser. There is no server: audio is captured or decoded in the page, fingerprinted, and matched against a catalogue held in browser memory. Nothing you play or add is uploaded.
- Identify – listen through your microphone, or feed in a file as if it were a live stream, and watch the live spectrogram, the recognised track, its confidence and a timeline of what has been heard.
- How it works – see the peaks and landmark pairs drawn from a real fingerprint, and the offset histogram whose spike identifies the track.
- Catalogue – add your own audio files and try the library on real music. They never leave your browser.
The starting catalogue is synthetic music generated in the page, so the demo contains no copyrighted recordings. Your browser asks for permission before the microphone is used.
What SoundPrint does well
- Robust. In our benchmarks on real music, five-second clips were identified 98 to 100% of the time through low-bitrate MP3, AAC and Opus, radio-style EQ and compression, heavy background noise, and a voice talking over the music, with about 0.1% false matches.
- Fast and lightweight. 200 to 425 times faster than real time on a single core. A live stream uses under 1% of a core, and memory stays constant over weeks of continuous listening.
- Honest about partial matches. A window that covers the end of one song and the start of the next returns both, each with the part of the audio it explains.
- Deterministic. The same audio always produces identical fingerprints, however it is split into chunks, on Windows and Linux alike.
- Yours to use. MIT licensed, with no native dependencies. Written from the published landmark-hashing research and first principles.
For .NET developers
SoundPrint targets .NET 10. Install the core library, and optionally the PostgreSQL store for fingerprint databases that need to persist:
dotnet add package PanoramicData.SoundPrint
dotnet add package PanoramicData.SoundPrint.Postgres
You pass in decoded mono audio and get back matches: the track, where the clip sits in it, and a calibrated confidence score. Track identifiers are your own, so the library works for any catalogue, not just music. The README on GitHub has a quick start, a live-stream example and full benchmark results.
What it does not do
We would rather you knew up front. SoundPrint matches the same recording, so covers, remixes and live versions will not match the original, and noticeable speed or pitch changes break matching. Very short or speech-only audio gives it too little to go on. It is not an audio decoder either: you supply the decoded audio. The full list of limits, and how the benchmarks were run, is in the README.
Part of our open-source work
SoundPrint joins our family of free NuGet packages, published by the team that builds Magic Suite. Want to talk about using it in your own product or service? Contact us.