Audio to MIDI (transcribe notes)
doseedo_transcribeAUDIO TO MIDI transcription: a melody, a bass line or a part as notes (pitch, onset/offset seconds, velocity, confidence as JSON — not a MIDI file; for .mid files per stem use doseedo_separate_stems with transcription or doseedo_audio_to_session). Works from an uploaded audio_key or an audio_url — any public https URL, including a result URL from another doseedo job (a generate take, a stem) as it was returned. Async: returns a job_id — poll with doseedo_wait_task (usually ~15–60s). For the KEY / tempo / chords of a whole mix use doseedo_analyze_song instead. Cancel: the plane has no stop for a running transcription — it runs to completion (credits spent), the job ends as canceled and its output is discarded. Only a job still queued at the plane is refunded by the plane's own failure refund.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "doseedo_transcribe"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| want | No | What to return: "notes" (default), "f0" (the continuous pitch contour — frame-rate Hz values, for glides/vibrato/intonation), or both. | |
| chairs | No | polyphony="section": register codes per chair, as an alternative to roster. | |
| family | No | Optional instrument family (e.g. "brass", "reeds", "strings") when the exact instrument is unknown. | |
| roster | No | polyphony="section": the chairs on the stem, e.g. "trumpet,trumpet,trombone,tenor_sax". Omit for the family default. | |
| backend | No | Advanced: force a transcription backend. Omit — the server routes by instrument. | |
| strikes | No | With tempo_bpm: also return the harmony_strikes attack grid. | |
| register | No | Optional register hint for the instrument (e.g. "soprano", "tenor", "bass"). | |
| audio_key | No | R2 ingest key of an uploaded audio file (from doseedo_get_upload_url / POST /api/upload/r2/ingest-url; starts with "ingest/"). Provide this or audio_url. | |
| audio_url | No | https URL of the audio to transcribe (alternative to audio_key): any public URL, or a doseedo result URL exactly as a job returned it — no key needed. | |
| polyphony | No | Optional: "solo" (monophonic line), "poly", or "section" (a horn section — see roster/chairs). | |
| tempo_bpm | No | Optional known tempo — enables beat-aligned note times. | |
| instrument | No | Optional instrument hint, e.g. "piano", "sax", "vocals", "bass". | |
| beats_per_bar | No | With tempo_bpm: beats per bar for the beat-domain times (default 4). | |
| 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. |