Train a custom instrument
doseedo_train_instrumentMake a CUSTOM INSTRUMENT in your own sound: upload 30 s–3 min of ONE instrument playing (your own player, a rare or folk instrument, a prepared/invented instrument, a vintage synth) and doseedo trains a private adapter (LoRA) on its serving instrument model in about 1–2 minutes. After that, doseedo_render_midi {instrument: , lora_id} plays ANY notes you write in that sound. Several takes help (up to 8 files; the first 3 min are used, ≥8 s required); a clean, solo, dry recording works best. instrument = the closest catalog instrument — it picks the model voice the adapter trains on (a shamisen trains as acoustic_guitar, a whistle as flute: doseedo_instruments lists each one's call.instrument). The notes are transcribed for you (pass notes to skip that). 20 credits. Result: lora_id, name, the windows it trained on, loss first→last, and use (the render args). Earlier ones: doseedo_list_jobs {kind:"train_instrument"}. Owner-only: no one else can render with it. Async: job_id → doseedo_wait_task (~1–2 min). Cancel: the plane has no stop for a running training — 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.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bpm | No | Optional tempo of the recording (30–300). | |
| name | No | A name for it, e.g. "Grandpa's banjo" (≤80 chars). | |
| seed | No | Random seed. | |
| notes | No | Optional: the notes played, one list per file — [[{pitch, start, end, velocity?}…]] in SECONDS. Omitted, they are transcribed. | |
| steps | No | Training steps 50–800. Default 300 for ≤60 s of audio, 400 above. | |
| 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/"). One recording; or audio_keys for several. | |
| audio_url | No | https URL of a recording (a doseedo result link — a separated stem works — or any public URL). Alternative to audio_key. | |
| drum_mode | No | true for an unpitched percussion recording. | |
| audio_keys | No | Several uploaded takes of the SAME instrument (≤8). | |
| audio_urls | No | Several recording URLs of the same instrument (≤8). | |
| instrument | Yes | REQUIRED. The catalog instrument it is closest to (call.instrument from doseedo_instruments, e.g. "violin", "acoustic_guitar", "flute", "percussion"). | |
| 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. |