ReaPack users: This script is now distributed through the unified Dead Pixel Design repository. Add this URL in REAPER under
Extensions → ReaPack → Import repositories:https://raw.githubusercontent.com/wretcher207/dead-pixel-design/main/index.xmlThe
index.xmlin this repo is preserved for backward compatibility but will not receive new entries.
Intentional dynamics shaping for modern drum programming.
Most humanizers spray random jitter across your MIDI and call it "feel." DeHumanizer Pro gives you two independent, drawable engines — one for velocity, one for timing — so you sculpt the dynamics and groove of a phrase with surgical precision, not dice rolls.
- Drawable velocity curve — paint a velocity shape across the full phrase with interpolated brush strokes
- Role-aware filtering — target Kicks, Snare, Hihat, Ride, Toms, Cymbals, or All independently
- Learn from Selection — select a note in the MIDI editor to teach a role new pitches on the fly
- Smart Phrase Reset — drift and golden-rule logic reset at phrase boundaries (configurable gap threshold)
- Live velocity preview — see predicted output overlaid on original notes before committing
- Drift Tension — controls how much the velocity wanders over consecutive hits
- Apply Strength — blend between original velocity and the shaped curve (0% = untouched, 100% = full curve)
- Right-click erase — paint the curve back to center with the right mouse button
- Full persistence — curve shape and all slider values survive script close / REAPER restart
- Per-role lean (rush/drag) — bias each kit piece ahead of or behind the beat in milliseconds
- Per-role scatter — add timing variance with a biased bell-curve distribution (most hits stay near center)
- Beat-aware tightening — beats 1, 2, 3, 4 automatically receive 30% of the scatter value to stay grounded
- Drawable scatter curve (per role) — paint a timing variance multiplier across the phrase (0× at bottom, 1× at center, 2× at top) to shape where the groove loosens up and where it locks in
- Tempo-aware PPQ math — all timing offsets are computed relative to the current project tempo
- BPM-aware tooltip — hover the (?) icon next to any role for a live preview of lean offset in ms, PPQ, and direction
- Independent apply — APPLY TIMING only moves notes in time; it never touches velocity
- REAPER 6.0 or later
- ReaImGui — install via ReaPack:
Extensions → ReaPack → Browse packages → search "ReaImGui"
- Open REAPER
- Go to
Extensions → ReaPack → Import repositories… - Paste this URL:
https://raw.githubusercontent.com/wretcher207/dead-pixel-design/main/index.xml - Click OK, then
Extensions → ReaPack → Browse packages - Search DeHumanizer Pro, right-click → Install
- Restart REAPER or run
Actions → ReaPack: Synchronize packages
- Download
dehumanizer-pro.luafrom the Scripts folder - Place it in your REAPER
Scripts/directory (usually~/.config/REAPER/Scripts/on Linux,~/Library/Application Support/REAPER/Scripts/on macOS, or%APPDATA%\REAPER\Scripts\on Windows) - In REAPER:
Actions → Show action list → Load ReaScript…→ select the file
- Open a MIDI item in the MIDI editor and select the notes you want to humanize.
- Choose a Target Role from the dropdown (or "All" for everything).
- Set Min Velocity and Max Velocity to define the output range.
- Draw a velocity curve on the canvas — the left edge is the start of the phrase, the right edge is the end. Bottom = Min Vel, Top = Max Vel.
- Adjust Drift Tension (random walk between consecutive hits) and Apply Strength (blend amount).
- Watch the orange Preview dots update in real time.
- Click APPLY VELOCITY to commit changes.
- With notes still selected, expand the Timing Engine section.
- Enable one or more roles via the checkboxes.
- Set Lean to push a role ahead (positive = rush) or behind (negative = drag) the beat.
- Set Scatter to add random timing variance (bell-curve distributed).
- Optionally draw a Scatter Curve for each role — this multiplies the scatter value across the phrase so you can have tight downbeats and loose fills.
- Hover the (?) icon for a live tooltip showing the lean offset in ms, PPQ, direction, and effective scatter values at the current tempo.
- Click APPLY TIMING to commit changes. Velocity is not affected.
Tip: Velocity and Timing are fully independent. You can apply one, both, or neither — in any order.
Built by Dead Pixel Design — we don't optimize, we haunt.
© 2026 Dead Pixel Design