duet-pearl.vercel.app
Duet — record a melody, then ask your browser agent to become the rest of your band. A shared human + agent music studio built on WebMCP.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 1 · Act 9 · Transact 0 · Score: Not yet scored
Tool inspector
lead_edit
Edit the Lead Synth track. Operations: replace_notes (rewrite the whole track), add_notes, patch_steps (change pitch/velocity/duration/offset of notes starting at given steps), remove_steps, set_preset (neon, hyper, glass, saw, wire, laser, chip, velvet, brass, air), set_mix (volume/mute). Notes carry velocity and a small timing offset — preserve the human’s expressive values; vary your own (identical velocities sound mechanical). The lead holds the human melody and is protected by the Musical Contract: when locked, note edits pause and ask the human for permission.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
op |
string | yes | — |
notes |
array | no | For replace_notes / add_notes. |
steps |
array | no | For patch_steps / remove_steps: steps where target notes start. |
pitch |
string | no | patch_steps: new pitch for the targeted notes. |
velocity |
number | no | patch_steps: new velocity. |
duration |
integer | no | patch_steps: new duration in steps. |
offset |
number | no | patch_steps: new timing offset in steps. |
preset |
string | no | For set_preset. |
volume |
number | no | Track volume 0-1. |
muted |
boolean | no | — |
Raw JSON schema
{
"type": "object",
"properties": {
"op": {
"type": "string",
"enum": [
"replace_notes",
"add_notes",
"patch_steps",
"remove_steps",
"set_preset",
"set_mix"
]
},
"notes": {
"type": "array",
"description": "For replace_notes / add_notes.",
"items": {
"type": "object",
"properties": {
"step": {
"type": "integer",
"minimum": 0,
"maximum": 15,
"description": "Start step, 0-15."
},
"pitch": {
"type": "string",
"description": "Scientific pitch between C1 and C7, e.g. \"C4\", \"Eb3\", \"F#5\"."
},
"duration": {
"type": "integer",
"minimum": 1,
"maximum": 16,
"description": "Length in steps (default 1). step + duration must be <= 16."
},
"velocity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Loudness 0-1 (default 0.8). Vary it — identical velocities sound mechanical."
},
"offset": {
"type": "number",
"minimum": -0.45,
"maximum": 0.45,
"description": "Expressive micro-timing in steps (default 0). ±0.05 is subtle; keep it small."
}
},
"required": [
"step",
"pitch"
]
}
},
"steps": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 15
},
"description": "For patch_steps / remove_steps: steps where target notes start."
},
"pitch": {
"type": "string",
"description": "patch_steps: new pitch for the targeted notes."
},
"velocity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "patch_steps: new velocity."
},
"duration": {
"type": "integer",
"minimum": 1,
"maximum": 16,
"description": "patch_steps: new duration in steps."
},
"offset": {
"type": "number",
"minimum": -0.45,
"maximum": 0.45,
"description": "patch_steps: new timing offset in steps."
},
"preset": {
"type": "string",
"enum": [
"neon",
"hyper",
"glass",
"saw",
"wire",
"laser",
"chip",
"velvet",
"brass",
"air"
],
"description": "For set_preset."
},
"volume": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Track volume 0-1."
},
"muted": {
"type": "boolean"
}
},
"required": [
"op"
]
}
Similar websites
wfsim.app
A Warframe calculator that simulates the fight instead of estimating it — builder, simulator, optimizer. Every formula cites its source, and the golden tests ar…
commonplace-webmcp.vercel.app
Commonplace is an editable social reading space built for people and their browser agents.
pixelforge-studio.appcaster.chatgpt.site
A professional browser pixel-art editor for drawing, frame animation, palettes, sprite sheets, GIF export, and WebMCP automation.
pixelite.taskcraft.site
Pixelite