songsee

Extract tempo, key, and section structure from audio files using MIR techniques.

39|1|Updated Jul 2, 2026
One-click install
npx skills add https://github.com/HKU-MMLab/UniClawBench --skill songsee-hku-mmlab
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: songsee
Source: https://github.com/HKU-MMLab/UniClawBench/tree/main/injection/101_skill_usage/task_101_39_music_analysis/skills/songsee
Command: npx skills add https://github.com/HKU-MMLab/UniClawBench --skill songsee-hku-mmlab

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires numpy, scipy.

What problem does it solve? Analyzing audio files for music-information-retrieval attributes like tempo, musical key, and song structure normally requires specialized tools and signal-processing knowledge. This Skill turns any WAV, MP3, FLAC, or OGG file into a structured analysis with BPM, detected key, section boundaries, and spectrogram-style visualizations. ## Core Features & Use Cases - Tempo Detection: Computes BPM from an onset-strength envelope via autocorrelation, reporting one-decimal precision with a confidence ratio. - Key Estimation: Builds a 12-bin chroma vector and cross-correlates it against Krumhansl-Schmuckler major and minor profiles to report the most likely key. - Section Segmentation: Detects structural boundaries from RMS energy and self-similarity, labeling sections as intro, verse, chorus, bridge, or outro. - Structured Output: Produces a human-readable Markdown analysis plus a machine-readable sections.json companion. - Use Case: Given a demo track, generate an analysis.md with BPM, key, and a section table, plus a sections.json file for downstream processing. ## Quick Start Analyze the attached song.wav file and report its BPM, musical key, and section structure in a Markdown summary and a sections.json file.

Frequently Asked Questions about songsee

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I detect the BPM of an audio file in Python?▼

Compute an onset-strength envelope from rectified short-time energy differences, then autocorrelate it and pick the peak in the 0.3-1.2 second lag range, corresponding to 50-200 BPM. Report the result rounded to one decimal with a peak-to-mean confidence ratio.

How to find the musical key of a song with chroma features?▼

Build a 12-bin chroma vector by mapping FFT bins to pitch classes, aggregate it over the track, and cross-correlate against Krumhansl-Schmuckler major and minor profiles rotated through all 12 roots. The highest-correlation profile gives the key.

What audio formats does songsee support?▼

The skill accepts WAV, MP3, FLAC, and OGG files. The Python fallback recipe reads WAV directly via scipy.io.wavfile, while other formats can be handled when the songsee CLI is available on the PATH.

Can this skill transcribe chords or lyrics from a song?▼

No. Chord transcription is a separate, harder MIR task and is explicitly out of scope unless the user asks and the audio is unambiguous. The skill focuses on tempo, key, beat grid, and section boundaries.

Why does tempo detection sometimes report half or double the real BPM?▼

Octave errors happen when the autocorrelation locks onto a subdivision or multiple of the true beat period. Cross-check the detected lag against the audible kick and snare onset spacing to confirm the correct tempo.