← WebMCP Directory

duet-pearl.vercel.app

duet-pearl.vercel.app

live Unverified (seed import) Media & Personal 10 tools imperative implementation

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

act imperative

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

PropertyTypeRequiredDescription
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

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…

live Unverified Media & Personal
101 tools A12 / Act89 / T0 Not yet scored Seen 2026-11-05
enemies_targets_list enemies_target_new enemies_target_copy enemies_target_open enemies_target_set
Inspect tools
commonplace-webmcp.vercel.app

commonplace-webmcp.vercel.app

Commonplace is an editable social reading space built for people and their browser agents.

live Unverified Media & Personal Transact tools
89 tools A10 / Act77 / T2 Not yet scored Seen 2026-11-05
commonplace.get_page_state commonplace_get_page_state commonplace.get_reading_list commonplace_get_reading_list commonplace.get_profile
Inspect tools
pixelforge-studio.appcaster.chatgpt.site

pixelforge-studio.appcaster.chatgpt.site

A professional browser pixel-art editor for drawing, frame animation, palettes, sprite sheets, GIF export, and WebMCP automation.

live Unverified Media & Personal Transact tools
88 tools A12 / Act70 / T6 Not yet scored Seen 2026-11-05
plan_text_creation get_text_creation_status create_from_text claim_text_creation update_text_creation
Inspect tools
pixelite.taskcraft.site

pixelite.taskcraft.site

Pixelite

live Unverified Media & Personal Transact tools
83 tools A4 / Act78 / T1 Not yet scored Seen 2026-11-05
get_document_info list_layers get_active_layer get_selection_info new_document
Inspect tools

Related on Influzer