coSynth agent brief

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.