cosynth.vercel.app
A synthesizer you control by talking to AI.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 8 · Act 14 · Transact 2 · Score: Not yet scored
Tool inspector
compare_audio
Step 2 of matching a target sound: the signed, per-dimension error between the reference and your sound (`diff`). It also returns ranked moves in this synth's parameter ids (`diff.actions`) and the `comparison` score. It renders the candidate first by default, at the reference's own detected pitch and duration, releasing the note a tail before the buffer ends so its decay is measurable — never an octave-off render whose scalars still look plausible. Falls back to the last render or the live scope with `autoRender: false`, and refuses a silent scope rather than scoring against silence.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
autoRender |
boolean | no | Default true when the reference has a pitch: render at that pitch and duration first. False compares the last render, or the live scope. |
notes |
array | no | Notes for that render, when the reference's own pitch is not what you want. |
duration |
number | no | Render seconds; defaults to the reference's duration. |
format |
string | no | Default "text": the diff as a compact table, and a summary in the strict sense — the arrays that table restates (`envelopeDb`, `bandsDb`, `spectralWindows`, `metricNotes`) are dropped from both metrics objects, cutting about a third off the response and more as `windows` rises. "json" returns everything whole. |
maxActions |
integer | no | Ranked moves, default 5. |
Raw JSON schema
{
"type": "object",
"properties": {
"autoRender": {
"type": "boolean",
"description": "Default true when the reference has a pitch: render at that pitch and duration first. False compares the last render, or the live scope."
},
"notes": {
"type": "array",
"minItems": 1,
"maxItems": 128,
"items": {
"type": "object",
"properties": {
"midi": {
"type": "integer",
"minimum": 0,
"maximum": 127,
"description": "Pitch as a number. Pass this or `note`, never both."
},
"note": {
"type": "string",
"minLength": 2,
"maxLength": 5,
"description": "Pitch as a name with an octave: \"C4\" is MIDI 60, \"D2\" is 73.4 Hz. Sharps \"#\", flats \"b\". Pass this or `midi`, never both."
},
"velocity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"start": {
"type": "number",
"minimum": 0
},
"duration": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"velocity",
"start",
"duration"
],
"oneOf": [
{
"required": [
"midi"
]
},
{
"required": [
"note"
]
}
],
"additionalProperties": false
},
"description": "Notes for that render, when the reference's own pitch is not what you want."
},
"duration": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 15,
"description": "Render seconds; defaults to the reference's duration."
},
"format": {
"type": "string",
"enum": [
"json",
"text"
],
"description": "Default \"text\": the diff as a compact table, and a summary in the strict sense — the arrays that table restates (`envelopeDb`, `bandsDb`, `spectralWindows`, `metricNotes`) are dropped from both metrics objects, cutting about a third off the response and more as `windows` rises. \"json\" returns everything whole."
},
"maxActions": {
"type": "integer",
"minimum": 0,
"maximum": 20,
"description": "Ranked moves, default 5."
}
},
"additionalProperties": false
}
Similar websites
reloadium.com
Paste a topic, URL, or PDF/TXT/MD — get a multi-episode AI podcast with audio, transcripts, timelines and quizzes. 60+ languages.
api.lmm.best
Connect AI models, tools and applications with LMM Forge. Explore model access, developer guides and open-source collaboration.
deskintab.dgkhan08.workers.dev
An operating system in your browser, where you and your AI agent share apps, files, and projects through WebMCP.
webmcp.agentsdesk.dev
Meridian Ops