Musig
A shazam like tool to store songs fingerprints and retrieve them
Install / Use
/learn @sfluor/MusigREADME
musig :speaker:
A shazam-like tool that allows you to compute song's fingerprints and reverse lookup song names.
It's more or less an implementation of the shazam paper as described in this awesome article
Installation
You will need to have go on your computer (version > 1.11 to be able to use go modules).
You will also need to have portaudio installed (brew install portaudio on macOS, apt install portaudio19-dev on Ubuntu / Debian, for other distributions you can search for the portaudio package), it is required for the listen command that listens on your microphone to match the recording against the database.
To build the binary:
git clone git@github.com:sfluor/musig.git
cd musig
make
You will then be able to run the binary with:
./bin/musig help
Usage

To do some testing you can download wav songs by doing make download.
Load them with ./bin/musig load "./assets/dataset/wav/*.wav"
And try to find one of your song name with:
./bin/musig read "$(ls ./assets/dataset/wav/*.wav | head -n 1)"
You can also try to use it with your microphone using the listen command:
./bin/musig listen
If you want to record a sample and reuse it multiple times after you can also use the record command:
./bin/musig record
For more details on the usage see the help command:
A shazam like CLI tool
Usage:
musig [command]
Available Commands:
help Help about any command
listen listen will record the microphone input and try to find a matching song from the database (Ctrl-C will stop the recording)
load Load loads all the audio files matching the provided glob into the database (TODO: only .wav are supported for now)
read Read reads the given audio file trying to find it's song name
record record will record the microphone input and save the signal to the given file
spectrogram spectrogram generate a spectrogram image for the given audio file in png (TODO: only .wav are supported for now)
Flags:
--database string database file to use (default "/tmp/musig.bolt")
-h, --help help for musig
Use "musig [command] --help" for more information about a command.
Testing
To run the tests you can use make test in the root directory.
TODOs
- [ ] improve the documentation
- [ ] support for
mp3files
Related Skills
xurl
345.4kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
qqbot-channel
345.4kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
100.0k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
345.4kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
