← All projects

waveiden

by @lumbrjx

Active 11

C++ audio fingerprinting library. Spectral peak pairing over short-time FFT, time coherent hash voting for identification with pluggable storage backend and gRPC service extension.

About this project

waveiden Audio fingerprinting library and CLI — identify songs from short audio clips. What it does waveiden builds a compact acoustic fingerprint database from full-length audio files, then matches query clips against it in milliseconds. The approach is the same one powering services like Shazam: Load audio and compute a short-time Fourier transform (spectrogram) Detect spectral peaks and pair them into hashed landmarks Store (hash, timeoffset, songname) triples in a database At query time, look up hashes and vote on the song with the most time-consistent hits A 30-second clip is enough for a reliable match against a database of thousands of songs. The library works against noisy or pitch-shifted recordings because the fingerprints are based on relative peak relationships rather than raw waveform content. Architecture The library is structured around two abstract interfaces: IDatabase — defines connect, disconnect, indexSong, match, listSongs, removeSong, and clear. Swap in any storage backend by subclassing it. IAudioReader — defines read(path) and readFromMemory(data, size). Swap in any audio format or source.

From the project README on GitHub

Stars
11
Forks
0
Last push
18 May 2026

Add this badge to your README

Show that your project is listed on Made in Algeria.

Made in Algeria
[![Made in Algeria](https://www.madeinalgeria.dev/badge/waveiden.svg)](https://www.madeinalgeria.dev/projects/waveiden)

Related projects