Skip to main content
Glama

humanize_take

Add dynamic contour and micro-timing to an existing drum take in place, humanizing stacked hits and enforcing varied velocities; preview with dry_run before writing.

Instructions

Put a dynamic contour and micro-timing into a drum take that is ALREADY on a track — the take is read, planned, and written back in place through index-addressed note edits, so stacked hits (flams, double triggers) are humanized too. The contour is always applied; amount only scales the random spread and timing looseness on top of it. Fills build as a crescendo peaking at the resolve, and the golden rule is enforced: no drum hits the same velocity twice in a row. Use follow_lead when the user has already humanized the opening bars BY HAND and wants that hand carried across the rest — it learns from their bars instead of applying the shared taste model, and fails if there is no flat region left to follow into. Prefer dry_run first: it plans and returns the full summary without writing. MUTATES the project (undo-block wrapped, one Ctrl/Cmd+Z reverts the whole pass).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
mapNoDrum-kit map for exact per-role velocity bands. Default: infer roles from the take's MIDI note names.
seedNoRNG seed; a run is reproducible.
trackYesExact name of the drum track.
amountNo0-100 random spread and timing looseness. Default 25.
dry_runNoPreview: return what would run without changing the project.
item_indexNoWhich item on the track. Default: the only item.
follow_leadNoLearn the velocity hand from the bars the user humanized and carry it across the rest.
example_through_barNoWith follow_lead: the last bar the user humanized (1-based). Default: auto-detect the first flat bar.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: it discloses that the tool MUTATES the project, that the pass is undo-block wrapped (one Ctrl/Cmd+Z reverts it), that dry_run previews without writing, that the contour is always applied and amount only scales spread/looseness, and the enforced no-repeat-velocity rule. That is unusually complete behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose and the in-place mechanism are front-loaded, and every sentence adds information (mechanism, contour/amount relationship, follow_lead, dry_run, mutation). It is dense and long-winded in places, but little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no annotations and no output schema, the description covers safety (undo wrap), preview path, the follow_lead alternative and its failure mode, and the amount/contour contract. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning beyond the schema: it clarifies that amount scales only the random spread on top of an always-applied contour, and that example_through_bar's auto-detect ties to follow_lead's flat-bar requirement. It stops short of documenting seed/map/item_index interactions, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (humanize an already-on-track drum take) and describes the mechanism: read, plan, write back in place via index-addressed note edits. It is clearly distinguishable from siblings like insert_groove, insert_riff, or apply_automation_transaction, which create or transform differently.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: use follow_lead only when the user hand-humanized the opening bars, and it fails if no flat region remains; otherwise the shared taste model applies. It also directs the agent to prefer dry_run first, naming both when-to-use and the failure condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.