AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Ableton Theory Coach

skill-korben00-ableton-producer-skills-ableton-theory-coach · by Korben00

This skill should be used when the user asks to "analyze this clip", "what chords/key/scale is this", "explain the harmony", "what's the progression", "show me the voice-leading", or wants a music-theory explanation of MIDI already in Ableton Live. Reads a clip's notes and explains the harmony, scale, and voice-leading (optionally in a WebView).

No reviews yet
0 installs
1 views
0.0% view→install

Install

$ agentstack add skill-korben00-ableton-producer-skills-ableton-theory-coach

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-korben00-ableton-producer-skills-ableton-theory-coach)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Ableton Theory Coach? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Ableton Theory Coach

Read MIDI from the Set and explain the music theory behind it — detected key/scale, chord names and functions (Roman numerals), the progression, melodic analysis, and voice-leading observations. Educational: it teaches why a part works, not just what it is.

When to use

Triggers: "analyze this clip", "what chords/key is this", "explain the harmony/progression", "voice-leading". To generate music use the composition skills; this one explains existing MIDI.

Process

  1. Use ableton-live-runner for build/run/kill + scaffold.
  2. Read the target clip's notes (clip.notes) and the project context (song.rootNote,

song.scaleName, song.scaleIntervals).

  1. Analyze:
  • Pitch-class content → infer key/scale (compare note set to major/minor/modal templates; the

project scale is a strong prior).

  • Chords → group notes overlapping in time per beat/bar; identify root + quality (triad, 7th,

9th, sus, slash) from intervals.

  • Function → Roman numerals relative to the key; flag cadences, secondary dominants, modal

interchange, the turnaround.

  • Melody → contour, chord-tone vs non-chord-tone usage, motif/repetition, range.
  • Voice-leading → common tones, smooth vs leapy motion, parallel intervals.
  1. Explain clearly — concise, leveled to the user; name the theory and say why it sounds the way

it does (e.g. "the ♭6 over the tonic is what makes it eerie").

  1. Optionally render a WebView report with api.ui.showModalDialog(url, w, h, onResult, onError)

it takes a file URL, not inline HTML: write the HTML to environment.tempDirectory / storageDirectory and pass its file:// URL; the callback returns a string. Or just print the analysis.

Chord-detection sketch

function chordsByBar(notes, bpb = 4) {
  const bars = {};
  for (const n of notes) { const bar = Math.floor(n.startTime / bpb); (bars[bar] ??= []).push(n.pitch % 12); }
  return Object.entries(bars).map(([bar, pcs]) => ({ bar: +bar, pcs: [...new Set(pcs)].sort((a, b) => a - b) }));
}
// match each bar's pitch-class set against interval templates {maj:[0,4,7], min:[0,3,7], m7:[0,3,7,10], ...}
// to name root + quality; then convert to a Roman numeral relative to song.rootNote.

Limits

  • Detection is heuristic — ambiguous sets (e.g. rootless/quartal voicings) may need the bass clue or a

best-guess with alternatives stated.

  • Reads notes only; expression/automation isn't analyzed.

See ableton-reharmonize, ableton-topline, ableton-describe-to-midi.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.