humanize_midi_notes
Nudge MIDI note timing and velocity with seeded random offsets to add human feel while keeping results reproducible and pitches unchanged.
Instructions
Humanize MIDI: nudge timing and velocity by small random amounts, reproducibly.
Each note gets its own timing and velocity offset drawn from a bell curve. Note lengths are preserved (start and end move together) and pitches are never touched. The randomness is seeded, so the same take with the same seed and settings gives identical results every time. Velocities are clamped to 1-127 and counted in clamped; notes pushed past the item end are kept and reported in out_of_bounds.
Unlike the other timing tools, a note pushed before the item start is placed at the item start and counted in out_of_bounds, not clamped; clamped here counts only the velocity clamp.
Args: timing: Timing spread in beats (standard deviation); 0.02 is a subtle human feel, 0.0 leaves timing alone. velocity: Velocity spread (standard deviation, in velocity units); 0.0 leaves velocity alone. seed: Any integer. The same seed, settings and take give the same result. max_sigma: Cap on how far one note may stray, in multiples of the spread.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| fields | No | ||
| timing | No | ||
| channel | No | ||
| end_beat | No | ||
| velocity | No | ||
| max_sigma | No | ||
| pitch_low | No | ||
| item_index | Yes | ||
| pitch_high | No | ||
| start_beat | No | ||
| track_index | Yes | ||
| return_notes | No |