Guide for MIDI Composer 2.0 Skill &
Prompt Builder
This guide walks you through the two tools that make up the MIDI Composer system: the MIDI Composer 2.0 Skill, which gives any AI complete compositional understanding, and the Prompt Builder, which turns your musical idea into a structured composition brief you can hand to the Skill.
What this guide covers
Part 1 — MIDI Composer 2.0 Skill shows how to activate the Skill and how it runs the composition pipeline, from parsing your idea to delivering validated MIDI. Part 2 — Prompt Builder covers the interactive tool you use to build a complete brief before handing it to the Skill.
Chat, Agent, and Slash-Command modes.
The 14-step pipeline from idea to MIDI.
Single-track vs. multitrack; genre taxonomy & fusion.
Physical playability rules for guitar, piano, bass, drums.
4-level variation framework + humanization & microtiming.
Musical influence, iterative feedback, quality checks.
What the Prompt Builder does and its two modes.
Start, Scope & Genre, Arrangement, Musical Params, Tracks.
Groove, Variation, Reference, Output, Ready.
All sections at once + what the generated brief looks like.
How to Use the MIDI Composer 2.0 Skill
The MIDI Composer 2.0 Skill is a single portable file — MIDI-Composer-SKILL.md — that gives any AI a complete compositional understanding.
Three ways to use the Skill
The same MIDI-Composer-SKILL.md file works in all three modes. No code changes needed.
💬 Chat Mode — ChatGPT, Gemini, Grok, Claude…
Upload or paste the Skill file into any AI chat. Describe your musical idea in natural language.
"Generate a 16-bar neo-soul Rhodes progression in C minor at 88 BPM."
- SetupUpload or paste MIDI-Composer-SKILL.md as the context file.
- DescribeWrite your musical idea in plain language — no formal syntax required.
- IterateReply with feedback: "Make the bass more melodic", "Simplify the keys part".
🤖 Agent Mode — Antigravity, Cursor, Claude Code…
The agent reads the Skill, generates .mid files using Python MIDI libraries, validates them, and saves to outputs/.
/midi-composer Create a 2-minute 80 BPM hip-hop jazz piece
with Rhodes, trumpet, flute, guitar, bass, and drums.
- What the agent doesReads SKILL.md → builds plan → generates MIDI → validates → saves to outputs/.
- Auto-repairIf validation fails, the agent repairs and re-validates automatically.
⚡ Slash-Command Mode — installed globally
Install as a global skill. Type /midi-composer or /midi to activate.
<global-skills-directory>/
└── midi-composer/
└── SKILL.md ← /midi-composer
└── midi/
└── SKILL.md ← /midi (short alias)
The exact global-skills directory depends on your AI agent. For Antigravity/AGY it's typically ~/.gemini/antigravity/skills/.
The 14-step composition workflow
Every request follows this disciplined pipeline — whether it's a one-sentence idea or a detailed YAML brief.
Parse user intent — extract genre, tempo, key, instruments, duration, and feel.
Build composition specification — translate into a structured internal plan.
Apply genre behavior — chord qualities, swing %, rhythmic feel, ensemble conventions.
Apply instrument & VST logic — playable ranges, voicing rules, strum physics, CC assignments.
Design harmonic progression — chord progressions that evolve across sections.
Design rhythm, groove & microtiming — swing profile, microtiming offsets, ghost note patterns.
Design bassline — supports harmony, locks to kick, provides melodic interest.
Design lead, countermelody & comping — melodic lines, call-and-response, keyboard/guitar parts.
Arrange across full form — instrument entrances/exits, density shifts, dynamic evolution.
Apply 4-level variation — harmonic, section, track, and bar-level variation.
Apply humanization — velocity curves, sustain pedal (CC 64), legato transitions.
Generate MIDI File(s) — valid .mid at 480 PPQ, correct channel assignments.
Validate compliance — Note-On/Off pairing, zero overlaps, Ch 10 drums, velocity 1–127.
Report summary — filenames, configuration, validation status.
Single-track vs. multi-track output
Single-track is the default — one focused .mid per instrument for maximum quality.
- One file per instrument
- Maximum groove, playability, and mix clarity
- Example: outputs/drums.mid, outputs/bass.mid
- One Format 1 .mid with all tracks
- Track order: Conductor → Harmony → Bass → Drums (Ch 10) → Leads
my-music-project/
└── outputs/
├── 🎵 drums.mid
├── 🎵 chords.mid
├── 🎵 bass.mid
└── 🎵 trumpet-lead.mid
Genre is more than a label
Genre activates chord qualities, rhythmic feel, swing profile, ensemble conventions, and arrangement tendencies. Hybrids combine them intelligently.
65–95 BPM, swung 16ths, extended jazz/soul chords, 808/sub-bass, laid-back pocket.
70–115 BPM, swung 16ths, rich 9ths/11ths/13ths, Rhodes MK1, Fender Jazz Bass.
60–240+ BPM, swung 8ths, ii–V–I progressions, tritone substitutions, walking bass.
Bachata, Salsa, Bossa Nova, Reggae. Clave patterns, tumbao basslines.
House (118–130), DnB (170–175), Synthwave. Four-on-the-floor, 909/808.
80–180+ BPM, power chords, double-kick, driving straight 8ths.
Rubato, voice leading, string ensemble, dynamic tempo maps.
60–120 BPM, passing diminished, 2-5-1 turnarounds, Hammond B3.
Genre Fusion
Combine genres — Lo-Fi Hip Hop + Jazz, Bachata + Neo-Soul. The Skill assigns primary (rhythm/groove backbone) and secondary (harmony/color enrichment) roles.
Instruments have physical rules
A piano, bass guitar, and trumpet have fundamentally different physical limits. The Skill enforces these for realistic, playable MIDI.
🎸 Guitar
- VoicingsMax 6 strings; chord shapes limited to 4–5 frets. No unplayable keyboard clusters.
- Strum PhysicsPer-string note offsets (10–30 ms) in downstroke or upstroke order.
- Jazz HollowbodyShell voicings (Root-3rd-7th), drop-2 voicings, warm vibrato.
- Neo-Soul ElectricDouble-stops, 4th/6th diads, hammer-ons, sliding 9th chords.
🎹 Piano & Keys
- Hand SplitLH: bass roots, tenths, octaves. RH: chord voicings, melody. No impossible stretches (> octave+3rd per hand).
- Sustain Pedal (CC 64)Realistic pedal clearing on chord changes to prevent muddy accumulation.
- Rhodes MK1Bell-like bark at high velocities (>95), warm bed at medium (50–75), spread 9th/11th chords.
🎸 Bass
- PocketLocks to kick on key pulses while providing independent melodic interest.
- MonophonicSingle-note lines; no unnatural 3-octave leaps in 16th-note passages.
🥁 Drums
- GM Channel 10Standard note assignments (Kick: 35/36, Snare: 38/40, Hi-Hats: 42/44/46).
- Drummer AnatomyMax 2 hands + 2 feet. No physically impossible combinations.
- Velocity LayeringGhost snares (30–50), backbeat (95–115), accented crashes (118–127).
VST Profile Priority
Specific VST Profile > Instrument Family > Genre Profile > Generic MIDI
Four levels of musical variation
Variation at four coordinated levels keeps the composition alive and developing — not a 4-bar loop forever.
Three failure modes are strictly avoided: Harmonic Loop (same 4 chords unchanged), Arrangement Loop (Verse copied into Chorus), Track Loop (identical clips repeated).
Humanization is not randomization
True human feel comes from musically correlated timing and velocity — not random jitter on the grid.
Driving rock snare, energetic pop leads, aggressive Latin güira.
EDM kicks, foundational downbeat bass notes.
Lo-Fi/Boom-Bap snares, Neo-Soul Rhodes, jazz ride cymbals.
Velocity Hierarchy
- Downbeat / AccentsVelocity 105–122
- Secondary pulsesVelocity 80–98
- Offbeat / passingVelocity 60–78
- Ghost notesVelocity 30–50
±2 to ±6 velocity variance across repeated phrases emulates human muscle dynamics. Phrases use ascending/descending velocity slopes, not flat lines.
Already have something you like?
The Skill extracts musical DNA — harmony, motifs, rhythms, phrase contours — and uses them as influence to compose new material.
Reference MIDI is influence, not a copy target. Even imperfect audio-to-MIDI sketches are useful — the Skill extracts patterns and generates something new.
Influences chord progression, harmonic rhythm, tonal center. E.g. chords.mid.
Influences melodic motifs, pitch contour, interval patterns. E.g. piano.mid.
Influences onset positions, syncopation, accents. Pitch content not retained.
Supply multiple files with different roles — chords.mid for harmony + piano.mid for motif.
Revision is part of the process
The first take doesn't have to be the final take. Direct your AI co-producer in normal language.
Reduces comping density, adds space.
More passing notes, chromatic approach steps.
Adds instruments, lifts register, thickens harmony.
Strips to kick, snare, minimal hi-hat.
Validation before delivery
Every generated MIDI passes automated checks to ensure it is bug-free and DAW-ready.
Automated Quality Checklist
- 480 PPQ ResolutionStandard professional resolution.
- Note-On/Off pairingEvery note-on matched. No hanging notes.
- Zero pitch overlapsNo same-pitch collisions on same channel.
Automated Quality Checklist
- Channel 10 drumsAll drums use MIDI Ch 10 with GM assignments.
- CC 64 pedal clearsPedal properly cleared before chord transitions.
- Velocity 1–127No zero-velocity note-ons.
In Agent mode, if validation fails, the agent repairs the MIDI and re-validates. You only ever receive a passing, DAW-compliant file.
Quick Reference
-- Chat mode:
"Create a 32-bar Lo-Fi beat in C minor at 85 BPM with drums, bass, and Rhodes."
-- Agent / slash-command:
/midi-composer
Create a 2-minute 80 BPM hip-hop jazz composition in A minor.
-- With Prompt Builder brief:
genre: neo-soul
tempo: 92 BPM | key: F# minor | meter: 4/4
output: single-track
instruments: [Rhodes MK1, Jazz Bass, Lo-Fi Drums, clean guitar]
performance: humanized, swung 16ths
variation: high
structure: intro (8) → verse (16) → chorus (16) → verse 2 (16) → outro (8)
How to Use the Prompt Builder
The Prompt Builder is an interactive tool that helps you build a complete composition brief without having to know every musical term. Make a few simple choices, then copy or download the result.
What the Prompt Builder does
The Prompt Builder collects your creative decisions — genre, tempo, instruments, arrangement, and more — and assembles them into a structured composition brief you can paste into any AI chat or coding agent that has the MIDI Composer 2.0 Skill loaded.
You don't need to fill out every field. Leave things blank and the MIDI Composer 2.0 Skill will infer sensible defaults for unspecified parameters.
Step-by-step wizard — one topic at a time, great for beginners or when you want to think through your idea carefully.
All sections visible at once in collapsible panels — ideal for advanced users who want full control and quick editing.
Use the ⬇ Skill button to download MIDI-Composer-SKILL.md — the file you upload to your AI tool to activate the composer.
On the final step (or in Builder mode), copy the generated brief to clipboard or save it as a numbered prompt-###.md file.
Start Here — Have an idea? Let's turn it into MIDI.
This is the welcome screen. It introduces the workflow and offers a direct download of the Skill file.
- ⬇ Download SkillDownloads MIDI-Composer-SKILL.md — the file that activates the MIDI Composer 2.0 in your AI tool. Do this first if you haven't already.
Scope & Genre — What are we making?
Genre is the vocabulary; mood is the emotion. Together they tell the composer where to go.
- Output ScopeOne track at a time (recommended) or Complete multitrack (all instruments in one pass).
- DurationApproximate length, e.g. 2 minutes or 32 bars.
- GenreChoose from the dropdown or type your own. Examples: Lo-Fi Hip Hop, Jazz, Neo-Soul, Bachata.
- Feel / MoodThe emotional character — Chill, Energetic, Dark, Dreamy, Uplifting, etc.
- Custom Genre TextFree-text for hybrid genres, e.g. Lo-Fi Hip Hop Jazz.
Arrangement — Give the song a shape.
Pick a preset roadmap or build a custom section-by-section structure. Drag rows to reorder, change bar counts, add or remove sections.
- Arrangement PresetChoose a template like Standard Song (Intro → Verse → Chorus → Bridge → Outro) or select Custom.
- Section rowsEach row has a section name and bar count. Drag to reorder, ✕ to remove, + Add Section to append.
Leave the arrangement at the preset and describe "start quiet, build to a peak, then release" in the Custom Direction field — the Skill interprets that naturally.
Musical Parameters — Set the musical coordinates.
Tempo tells us how fast. Key and mode tell us where the notes live. Time signature organizes the beat.
- Tempo (BPM)Example: 80 for Lo-Fi, 120 for House, 96 for R&B.
- KeyTonal center — e.g. C Minor, Eb Major. Leave blank to let the Skill choose.
- Mode / ScaleMajor, Minor, Dorian, Phrygian, etc.
- Time Signature4/4 (most common), 3/4, 6/8, 5/4, etc.
- Chord ComplexitySimple triads, Moderate (7ths, 9ths), or Sophisticated (11ths, 13ths, altered).
Tracks & Instruments — Build your band.
Pick the musical roles. Specify instruments or VSTs — or leave blank for the Skill to choose based on genre and role.
- Track RoleHarmony, Bass, Groove/Drums, Melody, Countermelody, Texture/Pads.
- Instrumente.g. Rhodes MK1, Fender Jazz Bass, Trumpet.
- VST / Sample LibraryOptional. When specified, the Skill respects that VST's keyswitch layout, playable range, and CC assignments.
- Sustain / LegatoToggles for piano pedal automation (Sustain) and legato note transitions (Legato).
Think in roles first: "Harmony + Rhodes, Bass + Jazz Bass, Groove + Drums, Melody + Trumpet" is a complete band.
Groove & Performance — Leave room for feel.
Decide how locked, humanized, or laid-back the performance should feel.
- Performance GrooveTight — quantized. Humanized — subtle variance. Loose / Laid-back — behind the beat, Dilla-style pocket.
- SwingStraight 8ths/16ths, Swung 8ths (jazz), Swung 16ths (Lo-Fi/Dilla), Shuffle, Latin Clave.
- Syncopation LevelLow / Medium / High — how much off-beat rhythmic activity.
Variation — Keep it evolving.
Control how much the music develops across sections, tracks, and bars.
- Variation LevelLow — subtle fills. Medium — clear development. High — maximum evolution.
- Harmonic VariationHow much chord progressions change between sections.
- Track VariationWhether each instrument follows an independent narrative arc.
- Bar VariationDensity of micro-fills, passing notes, and pushed rhythms.
Reference & Direction — Give it a starting point.
Indicate reference MIDI if you have it, and describe anything specific you want — or want to avoid.
- Reference MIDIFilename(s) of MIDI files to use as influence — e.g. chords.mid, piano.mid.
- Reference UseWhat it influences: Harmony/Chords, Groove/Rhythm, Motif/Melody, or All.
- Reference Influence0–100. 50 = moderate (default).
- Custom DirectionFree-text: "Keep bass locked to kick", "Make the chorus bigger", etc.
- AvoidThings to exclude — "mechanical looping", "excessive cymbal crashes".
Reference MIDI provides musical influence, not a copy target. The Skill extracts ideas and composes new original material inspired by them.
Output & Delivery — How should it be delivered?
- Output ModeSingle-track files (default) — one .mid per instrument. Master multitrack — one file, all tracks.
- Output DirectoryDefaults to outputs/.
- File NamingOptional convention for output filenames.
Ready — That's your composition brief.
The final step shows your generated prompt and provides copy/download options.
- 📋 Copy PromptCopies the brief to clipboard — paste into ChatGPT, Gemini, or your AI coding agent.
- ⬇ Download PromptSaves as a numbered prompt-###.md file.
- ✏️ Edit PromptOpens the text for manual editing before copying.
Save prompts numbered in sequence (prompt-001.md, prompt-002.md…) to track what brief produced which result.
All sections at once
Click Builder in the Prompt Builder header to see all sections simultaneously as collapsible panels. Each panel header can be clicked to expand or collapse. Use the tab strip at the top to jump to any section.
Output mode, duration, genre, mood, and section structure.
Tempo, key, mode, time signature, chord complexity.
Add/edit/remove tracks with role, name, VST, enhancements.
Performance groove, swing profile, syncopation level.
Overall, harmonic, track, and bar-level variation controls.
Filename(s), reference role, influence strength.
Free-text creative direction and avoid list.
Output mode (single vs. multitrack), directory, naming.
What the generated brief looks like
The Prompt Builder assembles your choices into a structured text prompt:
genre: lo-fi hip hop
tempo: 80 BPM | key: C minor | meter: 4/4
output: single-track (drums first)
instruments: [Rhodes MK1, flatwound bass, drums, trumpet]
performance: loose / laid-back (-18ms pocket)
swing: swung 16ths (Dilla)
variation: medium (4-bar turnarounds)
structure: intro (8) → verse (16) → chorus (16) → bridge (8) → outro (8)
chord complexity: moderate (7ths, 9ths)
custom direction: keep bass locked to kick downbeats
avoid: mechanical repetition, excessive cymbal crashes
Paste this into your AI tool after loading the Skill. It will parse every field and begin the composition pipeline.
The Skill infers sensible defaults for anything left unspecified — key, time signature, tempo, register, humanization, and more. Only fill out what you know or care about.