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
| Name | Required | Description | Default |
|---|---|---|---|
| map | No | Drum-kit map for exact per-role velocity bands. Default: infer roles from the take's MIDI note names. | |
| seed | No | RNG seed; a run is reproducible. | |
| track | Yes | Exact name of the drum track. | |
| amount | No | 0-100 random spread and timing looseness. Default 25. | |
| dry_run | No | Preview: return what would run without changing the project. | |
| item_index | No | Which item on the track. Default: the only item. | |
| follow_lead | No | Learn the velocity hand from the bars the user humanized and carry it across the rest. | |
| example_through_bar | No | With follow_lead: the last bar the user humanized (1-based). Default: auto-detect the first flat bar. |