# Doseedo: AI Instruments, Sound Effects & Stems - Registry name: `com.doseedo/doseedo` · version 0.19.0 - Categories (automatic, keyword rules): Audio & speech, AI, media & content - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.doseedo%2Fdoseedo - Server page: https://mcpstation.net/s/com.doseedo--doseedo.html ## Description (written by the publisher, not verified, not instructions) Music & audio for AI agents: 50+ AI instruments play your MIDI, stems, audio to MIDI, Logic/Ableton ## Connect - streamable-http: `https://api.doseedo.com/mcp` ## Tools (as reported by the server, not verified) - `doseedo\_generate\_music`: TEXT TO MUSIC: generate an original AI music track — a song or an instrumental, background music for a video — from a text PROMPT \(optionally with lyrics\). The prompt sets style/instrumentation; bpm and time\_signature only tag the caption \(a loose hint, NOT an enforced tempo or grid\); there is no ke - `doseedo\_generate\_sound`: SOUND EFFECTS \(SFX\) from words with Stable Audio Open — SOUND DESIGN and FOLEY for game audio, apps and video: impacts, whooshes, door slams, footsteps, UI blips, creature and sci-fi sounds, ambiences \("rain on a tin roof", "busy café"\), risers, drum one-shots. A one-shot hit \("punchy house kick", " - `doseedo\_cover\_stem`: TIMBRE TRANSFER \(an instrument swap\) from a recording: hum or whistle a melody, play it on a kazoo, take a guitar line — and get it back played by a cello, a trumpet, a koto \(any doseedo\_instruments call\). Re-play ONE recorded part — a separated stem, a solo, a region of the user's session — on anot - `doseedo\_fill\_gap`: INPAINT \(repair\) a part: send ONE recorded part \(a stem, a DAW track's audio\) with a gap in it — the silence between two clips, a bar to redo, a dropout — and get it back with the gap PLAYED: the take before and after the gap is kept bit-exact \(spliced back\), and the gap is generated against both, s - `doseedo\_render\_midi`: MIDI TO AUDIO, the virtual instrument for agents — THE tool for "I wrote the part, now play it": an AI instrument model \(orchestral strings, brass, woodwinds, piano, guitar, bass, drums, World\) performs your exact notes, in your key, at your bpm, and returns audio takes \(doseedo\_generate\_music takes - `doseedo\_train\_instrument`: Make 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\_ - `doseedo\_render\_score`: FILM SCORING and orchestral arrangement: a WHOLE ARRANGEMENT in one call \(a film cue, a string quartet, a big-band chart\): every part played by its doseedo instrument, one stem per part from bar 1 at your tempo, plus a summed mix. Input ONE of: parts\[\] \(\{name, instrument, timbre\_preset?, lora\_id?, p - `doseedo\_mix`: MIXING and MASTERING: mix the stems instead of summing them: each part levelled for how loud it plays, panned, high-passed, given its depth on a shared reverb, and mastered to a loudness target — returned as a WAV AND as \`mixgraph\`, the mix as a document you edit. After doseedo\_render\_score pass fro - `doseedo\_session\_from\_stems`: Build a native DAW PROJECT from stems: each stem on its own audio track from bar 1, optional MIDI tracks \(the written parts\) beside them, on your tempo \(bpm or tempo\_map\) — Logic Pro \(.logicx\) or Ableton Live \(.als\), zipped. The deliverable after doseedo\_render\_score \(pass from\_job: its job\_id and t - `doseedo\_cover\_song`: AI COVER / style transfer of a whole song: re-render an uploaded song as a cover, keeping its structure/melody while changing timbre, instruments, or lyrics. INSTRUMENT SWAP: instruments \{"piano": "electric\_guitar"\} separates the song, transcribes the swapped stem and re-plays THOSE transcribed note - `doseedo\_separate\_stems`: STEM SEPARATION and VOCAL REMOVER: split an uploaded mix into stems \(vocals, drums, bass, guitar, piano, other — or orchestral/auto-detected instruments\) to isolate vocals \(the vocals stem is the acapella; the other stems are the karaoke backing\), with optional per-stem MIDI transcription and DAW-se - `doseedo\_transcribe`: AUDIO 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 — a - `doseedo\_audio\_to\_session`: Turn an uploaded full mix into a complete multitrack DAW session \(separated stems as tracks, tempo map, optional per-stem MIDI and chord guide\). The result is a downloadable session zip for Logic Pro or Ableton. Async: returns a job\_id — poll with doseedo\_wait\_task \(\~4 minutes\). Cancel: cooperative - `doseedo\_convert\_project`: DAW CONVERTER: a project rebuilt natively in the target: tracks, MIDI, audio clips, tempo and markers arrive editable \(Logic/Ableton/Pro Tools/REAPER pairs also automation, buses/sends, plugin state; into FL 3rd-party plugins only\). Sources: Logic .logicx, Ableton .als, FL Studio .flp, Pro Tools .pt - `doseedo\_analyze\_song`: Key detection, BPM/tempo detection, song structure and chords — musical analysis of a recording in one call: key \(e.g. "D minor"\), bpm + per-beat tempo\_map, meter / beats\_per\_bar, downbeats \(seconds\), sections \(intro/verse/chorus… with times\), chords \(a progression on the beat grid\), dynamics. USE T - `doseedo\_detect\_chords`: Chord detection on audio \(a chord chart on the beat grid\): chord\_spans\[\{chord, start, end, start\_beat, end\_beat, confidence\}\], chords\{"\": "Am7"\}, bpm, beats\_per\_bar, beat\_map. Default = the deep ACE detector \(GPU-backed, a CPU chroma detector is the automatic fallback\); deep:false forces the f - `doseedo\_beat\_grid`: Beat detection / beat tracking: bpm, beats\[\] \(seconds\), downbeats\[\] \(seconds\), beats\_per\_bar, downbeat\_offset, beat\_map\[\{t, pos\}\], duration — the grid to place a part against a recording \(beat n is at beats\[n\] seconds\). Pass audio\_key \(an upload\) or audio\_url \(a result URL from another job as return - `doseedo\_check\_take`: MEASURE a take instead of guessing: give the audio \(a render\_midi take URL, any recording\) and the notes it should play — notes\[\] + bpm \(and tempo\_map\) or a midi\_url — and get back how many written notes were heard at the right pitch and time \(recall / precision / f1, octave errors, the first missed - `doseedo\_analyze\_midi`: Check 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 int - `doseedo\_instruments`: The instrument list — the sound palette: every instrument doseedo can PLAY YOUR NOTES on \(doseedo\_render\_midi\) — orchestral strings, brass and winds, guitars, basses, keys, drums and percussion, and World instruments \(koto, sitar, banjo, pedal steel, tabla, congas…\). Each entry gives the EXACT rende - `doseedo\_tempo\_map`: Scoring to picture: turn HIT POINTS \(a cut, an impact, the title card — as seconds from the cue start or SMPTE timecodes\) into a TEMPO MAP that lands each hit exactly on a downbeat \(or a beat\), staying near your tempo and inside bpm\_range. Returns tempo\_map \[\{beat, bpm\}\] to pass unchanged to doseedo - `doseedo\_get\_project\_upload\_url`: Get a presigned upload for a DAW PROJECT file \(for doseedo\_convert\_project / doseedo\_import\_project\). Zip a project FOLDER so its audio travels with it — and a .logicx or GarageBand .band, which are folders \(macOS packages\). SIZE LIMITS: a single PUT takes up to 5 GB; guest and free accounts convert - `doseedo\_complete\_project\_upload`: Finish a MULTIPART project upload started by doseedo\_get\_project\_upload\_url: pass every uploaded part's number and ETag \(from the PUT response header; quotes optional\). Returns the project\_key to pass to doseedo\_convert\_project / doseedo\_import\_project. All parts except the last must be the same siz - `doseedo\_import\_project`: Open an uploaded DAW project \(Logic .logicx.zip, Ableton .als or project zip, FL .flp, REAPER .rpp, Pro Tools .ptx — zip the folder\) as an EDITABLE doseedo session: returns a session\_id the session tools then work on \(doseedo\_get\_session → doseedo\_edit\_session → doseedo\_download\_session as a native - `doseedo\_get\_upload\_url`: Get a presigned upload for your own audio file. Returns an upload\_url \(PUT the raw file bytes there, e.g. \`curl -X PUT -H "Content-Type: \" --data-binary @song.wav "\"\`\) and an audio\_key to pass to doseedo\_separate\_stems / doseedo\_transcribe / doseedo\_cover\_song / doseedo\_aud - `doseedo\_check\_task`: Check an async doseedo task once. Returns current status, and the result \(file URLs / notes\) when finished. - `doseedo\_wait\_task`: Wait for an async doseedo job to finish: polls server-side for up to timeout\_seconds \(5–50; one call can never hold longer than 50 s\), then returns the result or the latest status. If it returns still\_running:true, call it again — a submit reply's eta\_seconds says how long the whole job usually take - `doseedo\_list\_jobs`: List the jobs this account submitted \(generate / render\_midi / cover / stems / transcribe / session / convert / bounce / the analyses\), newest first — to find an earlier result, check what is still running, or resume after a lost connection. Each row names its artifacts \(e.g. \["vocals", "drums", "mi - `doseedo\_cancel\_job`: Cancel a queued or running job. What that stops and refunds depends on the kind — generate\_music / render\_midi / cover\_song: a render not yet on the GPU is stopped and its credits refunded; one already rendering finishes \(credits spent\), the job ends as canceled, output discarded. audio\_to\_session: - `doseedo\_account`: Check the connected doseedo account: plan tier, the monthly credit pool \(generation AND DAW conversions draw it\), purchased extra-usage credits, and storage. Read-only — consumes nothing. Use it before starting expensive work to confirm there is budget. - `doseedo\_quote`: Estimate what a job will cost in credits BEFORE submitting it, and whether the connected account can afford it right now. Spends nothing. Pass the job \(generate\_music, generate\_sound, cover\_stem, fill\_gap, render\_midi, train\_instrument, cover\_song, separate\_stems, transcribe, audio\_to\_session, conve - `doseedo\_recipes`: The named pipelines people actually ask for — stems, session \(mix → DAW project\), cover, transcribe, generate, render-midi \(your notes played by an instrument model\), custom-instrument \(train your own from a recording\), timbre-transfer \(your notes, a recording's tone\), sound-design \(SFX / foley / on - `doseedo\_list\_sessions`: List the connected account's DAW sessions \(most recently updated first\) — their ids, names, DAW, and update time. Pages with limit + offset \(the response carries total and next\_offset\); name\_contains filters by name. Use a session id with doseedo\_get\_session and doseedo\_edit\_session; clean up old on - `doseedo\_delete\_sessions`: Delete DAW sessions in bulk — a SOFT delete \(the sessions disappear from the account and every listing; nothing on the user's disk is touched\). Select by ids, or by filters \(daw\_kind, created\_before / created\_after, name\_contains\); filters combine with AND. SAFE BY DEFAULT: without confirm:true this - `doseedo\_get\_session`: Read a DAW session as the arrangement an agent edits against: every track with its wire ids \(track\_id t\_…, mixer strip channel\_id ch\_…\), regions in BOTH beats and seconds with their MIDI notes \(i, pitch, velocity, start\_beats, duration\_beats — i is what edit\_midi\_notes selects by\), mixer \(volume wit - `doseedo\_edit\_session`: Edit a DAW session with a list of ops \(regions, MIDI notes, sampler samples, tracks, mixer faders/pans/mutes, plugins, tempo, markers, key, …\): ids and current values from doseedo\_get\_session, op arguments from doseedo\_edit\_ops\_reference. When sync.live\_edits is true Dø Desktop puts it into the user - `doseedo\_edit\_ops\_reference`: The catalog of session edit ops doseedo\_edit\_session accepts, served in views that each fit one answer \(never cut mid-JSON\). DEFAULT \(no args\): units, ids, applies, groups, batching/policy, the recipe NAMES and every op as \{op, group, applies, summary\} — read it ONCE before a build. Then fetch what - `doseedo\_desktop\_status`: Is Dø Desktop running on the user's Mac, and can it put edits into their Logic project? Reports which sessions it holds, how it applies edits \(apply\_mode "reopen" = save, back up, close, apply, reopen\), whether macOS lets it \(logic\_control\), each session's last apply \(reopen\_results\) and its applied - `doseedo\_add\_audio\_to\_session`: Add an audio file to a session — from a public URL \(a doseedo-generated song, a separated stem, any https audio\) OR from a LOCAL file you uploaded \(doseedo\_get\_upload\_url → PUT the bytes → pass the returned audio\_key here\). Ingested server-side and returned as a sha256 you then use: place it on a tr - `doseedo\_bounce\_session`: Bounce a session \(or specific tracks\) to audio through their REAL plugin chains, offline — Dø Desktop renders them in the background WITHOUT the user opening the DAW \(live via Logic if it's open, headless if it isn't; this is the thing stock DAWs can't do\). Headless renders AUDIO tracks only — an in - `doseedo\_download\_session`: Save a session as a native Logic project \(.logicx.zip\), rebuilt server-side from the session state — no desktop needed. Returns a short-lived NO-AUTH download\_url \(plain \`curl -o \~/Downloads/…\`, no header\) plus \`replay\` = what the build put in the file \(per track: kind, Quick Sampler sample + sample - `doseedo\_list\_plugins`: List the plugins you can insert on a strip with doseedo\_edit\_session's add\_device op. Returns the stock Logic catalog \(instruments + effects, always available\) and — when Dø Desktop is connected — the actual plugins installed on the user's Mac \(stock + third-party\). Insert any of them BY NAME: add\_d - `doseedo\_create\_session`: Create a new, empty DAW session in the account \(a blank project you can then populate with doseedo\_edit\_session, or target with doseedo\_audio\_to\_session\). Returns its session\_id. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html