← ClaudeAtlas

song-analysislisted

Use when analyzing a song recording — extracting tempo/downbeats/key, separating stems, transcribing bass to MIDI, identifying chords per bar, timing lyrics, reading drum patterns, or producing a chord+lyric chart for a band. Covers madmom, demucs (htdemucs_ft), CREPE, basic-pitch, chroma chord proposal, and Whisper word timing.
PerIPan/music-workflow-skills · ★ 2 · Data & Documents · score 63
Install: claude install-skill PerIPan/music-workflow-skills
# Song Analysis — recording → bars, chords, lyrics, chart Song-agnostic pipeline, validated over many real projects (Mitski "A Pearl", Greek laiko, punk reinterpretations). Works for any song, genre, or key. **References (read on demand):** - `references/environment-setup.md` — first-time venv install + per-song folder layout - `references/chart-and-lyrics.md` — chart structure, the 6 lyric-placement rules, HTML output - `references/drum-pattern-analysis.md` — kick/snare pattern reading from the drums stem - `references/modal-theory.md` — power-chord shorthand, mode tables, Byzantine ≠ Phrygian ## Inputs 1. **Audio file** — mp3/wav of the song (full mix). 2. **Lyrics** — canonical text from an official source. Section labels (Verse, Chorus, Bridge…) come from this, not from the analyzer. ## Tool per step | Step | Tool | Why | |---|---|---| | Pulse (beats only) | **madmom** `DBNBeatTrackingProcessor` | No meter assumed — see Phase 1a | | Meter / bar length | **`scripts/detect_meter.py`** | Sweeps every cycle 2–25; finds odd meters | | Key (melodic mode) | **librosa** chroma + Krumhansl | Signal only — see Trap 2 | | Stem separation | **demucs `htdemucs_ft`** (4-stem) | Cleanest bass; NEVER `htdemucs_6s` (bleeds piano/guitar into bass) | | Bass → MIDI | **CREPE** (`full` + viterbi) | Monophonic tracker; gives the ROOT, not quality | | Polyphonic parts → MIDI | **basic-pitch** | Piano/guitar/pads, double-stops | | Chords | **chroma + bass-root + major-bias** | 99% top-1