Analyze MIDI harmony
doseedo_analyze_midiCheck the HARMONY of notes before rendering or placing them: factor a MIDI progression into its sonorities (mode "midi", default — chord-detection-free: each segment of simultaneously sounding pitches reduced to an anchor pitch class + register-exact shape, covered with recurring shape cells) or into chord symbols (mode "chord": one estimated chord per ~2 beats + a corpus-grammar cell cover with a schedule). Input: notes[] (the rows you would give doseedo_render_midi / set_midi_notes) with bpm, or midi_url (a .mid ≤2 MiB: a doseedo result link such as a stem's MIDI, or a public URL). Synchronous (~2–10 s), CPU, no credits. Returns sonorities[] or chords[], cover, cells, compression — read chords[].chord / sonorities[].anchor to confirm the key and progression you intended. Cancel: not applicable — the result is returned in the submit response; the job is already finished.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bpm | No | Tempo of the notes (needed with notes; default 120). | |
| mode | No | "midi" (default): sonority / shape factoring. "chord": chord symbols per segment + cell cover. | |
| notes | No | The notes to analyze, in beats from bar 1 (same rows as doseedo_render_midi). Needs bpm. | |
| midi_url | No | Alternative to notes: https URL of a Standard MIDI File (≤2 MiB). | |
| min_seg_beats | No | mode midi: shortest sonority segment in beats (default 0.25). | |
| time_signature | No | Meter of the notes, e.g. "4/4" (default). | |
| idempotency_key | No | Optional. Any unique string for THIS request (e.g. a UUID). Re-sending the same call with the same key after a timeout returns the same job instead of starting a second one. | |
| beats_per_segment | No | mode chord: segment length in beats (0.25–8, default 2). |