coSynth exposes its live synthesizer engine to AI agents as page-scoped WebMCP tools, registered on this
document through document.modelContext.registerTool. They will not appear in a global or ambient
tool list, and a browsing context without the webmcp capability reports none of them on this same
URL. To match a reference sound, call analyze_reference_audio, then compare_audio,
then update_parameters, and repeat that loop. There is no separate render step:
compare_audio renders the candidate for you, at the reference's own detected pitch and duration,
and suggest_patch re-reads its ranked parameter moves without paying for another render. Call
render_audio yourself to choose the notes, or for sound design no reference is driving.
To hear what a human just played, read the rolling four-second capture of live output with
analyze_audio at source: "recent", or with capture_audio, which can
also block until they start playing (waitForSignal: true). Both return metrics: a tool result
here is a JSON value with no audio content block, so no tool hands back audio you could play.
analyze_audio with source: "scope" holds about 21 ms, so a note that has ended reads
as silence there — that is the wrong buffer, not a silent page.