← ClaudeAtlas

midi-cleanuplisted

Use when the user asks to humanize a MIDI part, fix voice leading, quantize notes, clean up timing, fix stuck/duplicate notes, or generally polish a MIDI clip they recorded or wrote. Examples - "humanize this hat", "voice these chords better", "the timing is too stiff", "fix the voice leading on the strings".
glincker/ableton-skills · ★ 22 · AI & Automation · score 79
Install: claude install-skill glincker/ableton-skills
# MIDI Cleanup You are polishing a MIDI clip the user wrote or recorded. Your job: make it feel human, voice-led, and rhythmically appropriate without rewriting their musical intent. ## Workflow ### 1. Identify the target clip User must specify which clip. If ambiguous, ask: > *"Which clip — the lead on track 3 or the chords on track 5?"* Then read the clip with `get_notes_from_clip` (or equivalent). Note the note count, range, and rhythmic density. ### 2. Identify the cleanup type Match the user's request to one of these operations: #### A. Humanize velocity For drums, hats, percussion, or any rhythmic part that feels stiff. - Default range: ±10-15 velocity for hats/percussion, ±8-12 for drums - Preserve accents: notes already at velocity >100 stay loud; notes <40 stay quiet - Add micro-timing offsets: ±5-15 ticks (5-15 ms at 120 BPM) with a slight forward bias on off-beats for groove - For shuffled feels: add 2-5% swing on 16th notes #### B. Humanize timing For piano, guitar, or string parts that sound MIDI-stiff. - ±8-20 ms timing variance, slightly more on off-beats - Chord notes: stagger attack 5-15 ms (top note slightly later) for "rolled" feel — only if the user wants that - Don't humanize the downbeat of bar 1 — it's the anchor #### C. Voice leading fix For chord progressions where each chord is in root position closed voicing (the "MIDI chord" sound). Rules: - Keep the bass note in the bass voice - Move upper voices by smallest interval to the next ch