---
name: chord-rip
description: Analyze any audio file and extract its chord progression with timestamps. Outputs a labeled chord chart (text + JSON), the detected key, tempo, and Roman numeral analysis (I — IV — V — vi etc) so you can see the function of each chord. Uses librosa chroma + chord-template matching, plus optional MIDI export of the chord roots. Distinct from midi-rip (full polyphonic transcription) — chord-rip gives you the harmonic sketch, not every note. Use when the user asks "what chords are in this", "get the chord progression", "analyze the harmony", "transcribe to chords", or wants a chord chart for a sample/song they want to flip.
---


# chord-rip

Audio → chord chart with key + Roman numerals.

## Basic

```bash
python3 ~/.claude/skills/chord-rip/scripts/rip.py --input loop.wav
# → loop_chords/  (chords.txt, chords.json, chords.mid, chords_chart.png)
```

## Output a beat-synced grid (chords per N seconds)

```bash
python3 ~/.claude/skills/chord-rip/scripts/rip.py --input clip.mp3 --hop 0.5
# emits one chord every 0.5 seconds — denser, captures fast changes
```

## Force the key (skip detection)

```bash
python3 ~/.claude/skills/chord-rip/scripts/rip.py --input clip.mp3 --key Cmaj
# Roman numerals will be relative to C major
```

## Major / minor only (skip 7ths)

```bash
python3 ~/.claude/skills/chord-rip/scripts/rip.py --input clip.mp3 --simple
# only major/minor triads, no 7ths/sus
```

## URL input (YouTube etc)

```bash
python3 ~/.claude/skills/chord-rip/scripts/rip.py --input "https://youtu.be/XXX"
# auto-downloads audio via yt-dlp first
```

## Output format

```
chords.txt:
  00:00.00  Am   vi
  00:02.13  F    IV
  00:04.27  C    I
  00:06.40  G    V
  ...

chords.json:
  {
    "key": "Cmaj", "bpm": 92.4,
    "progression": [
      {"start": 0.0, "end": 2.13, "chord": "Am", "roman": "vi"},
      ...
    ]
  }

chords.mid: chord roots as MIDI notes (drop into Ableton)
chords_chart.png: visual timeline of the progression
```

## Flags

- `--input` — audio file or URL
- `--output` — output folder (default `<input>_chords`)
- `--hop` — seconds per chord frame (default: auto = beat-synced)
- `--key` — force key (e.g. `Cmaj`, `Amin`); default: auto-detect
- `--simple` — only major/minor triads, no 7ths
- `--no-midi` — skip MIDI export
- `--no-chart` — skip the PNG visualization

## First-run install

Auto-installs `librosa`, `mido`, `numpy`, `pillow`, `yt-dlp`. ffmpeg expected on PATH.

## Pairs well with

- `midi-rip` — chord-rip for the chart, midi-rip for the full transcription
- `sample-pack` — analyze samples by key before tagging
- `cook-app` / `samplette` — generate beats over the detected progression
