Generate Progression MIDI
Tool name: generate-progression-midi
Renders a chord progression to a Standard MIDI File (SMF1, 480 PPQ, 4/4) with the chosen voicing.
Annotations
Section titled “Annotations”| Hint | Value |
|---|---|
| readOnlyHint | ✓ |
| idempotentHint | ✓ |
| destructiveHint | — |
| openWorldHint | — |
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "chords": { "minItems": 1, "type": "array", "items": { "type": "string", "minLength": 1 }, "description": "Chord symbols in order (e.g. [\"Cmaj7\",\"Am7\",\"Dm7\",\"G7\"])." }, "tempo": { "type": "integer", "minimum": 20, "maximum": 300, "description": "Tempo in BPM." }, "voicing": { "type": "string", "enum": [ "block", "arpeggio-up", "arpeggio-down", "broken" ], "description": "How chord tones are realized within each bar." }, "barsPerChord": { "type": "integer", "minimum": 1, "maximum": 16, "description": "How many 4/4 bars each chord lasts." } }, "required": [ "chords", "tempo", "voicing", "barsPerChord" ], "additionalProperties": false}Output
Section titled “Output”Returned as structuredContent. The text rendering is a short human-readable summary.
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "midiBase64": { "type": "string", "description": "Base64-encoded Standard MIDI File bytes." }, "format": { "type": "string", "const": "smf1", "description": "SMF format type 1." }, "ppq": { "type": "number", "const": 480, "description": "Pulses per quarter note." }, "durationMs": { "type": "integer", "minimum": 0, "maximum": 9007199254740991, "description": "Total duration in milliseconds." }, "trackCount": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991, "description": "Number of MIDI tracks." } }, "required": [ "midiBase64", "format", "ppq", "durationMs", "trackCount" ], "additionalProperties": false}