Groove DNA
v0.2.1Extracts the micro-timing and velocity feel from one or more MIDI clips into a reusable template, then imprints that feel onto other MIDI clips — independent of their pitch content.
Unverified listing. This repo is new or has little community activity and the developer has not claimed it. Extensions run code inside Live — read the source, check the author, and only install things you trust.
Groove DNA
Extracts the micro-timing and velocity feel from one or more MIDI clips into a reusable template, then imprints that feel onto other MIDI clips — independent of their pitch content.
- Right-click one or more MIDI clips (or a whole track) and choose Extract Groove DNA. It reads every unmuted note, builds a 32-slot (one bar, 1/32-note resolution) timing/velocity/duration profile, and shows you what it found — note count, detected feel, and an editable name (pre-filled from the clip, or its track when the clip is unnamed, which is Live's own default state). Nothing is written to disk until you confirm. If there's nothing to extract, it says so rather than failing silently.
- Right-click the clip(s) or track you want to imprint it onto and choose Apply Groove DNA…. Pick a template, a strength (0-100%, an exact blend between the clip's original timing and the template's), a grid resolution, an optional humanize amount, and — only if you explicitly turn off "Preserve pitch content" — an optional scale constraint. Preview writes the result into a temporary copy (a new take lane for Arrangement clips, the next empty slot for Session clips) so you can audition it without touching the original. Apply overwrites the target clip(s) in place as a single undo step. Saved templates can be renamed or deleted from the same dialog.
Pure analysis/transform logic lives in src/analysis and src/transforms
(unit-tested, zero SDK imports — see npm test); everything that touches
Live lives in src/sdk; the modal is src/ui/modal.html + src/ui/buildModalHtml.ts.
Known limitations (deliberate scope, not oversights)
- The groove cycle is fixed at one bar of 4/4 (4 beats). The SDK exposes
no Set-level time signature — only a read-only per-
Scenenumerator/denominator (the same gapset-snapshot's README documents) — so there's no reliable signal to size the cycle from. Multi-bar source clips are folded into that one cycle (a bar 2 downbeat contributes to the same slot as a bar 1 downbeat), which is also what makes an extracted template reusable on target clips of any length. - No triplet grid option in the Apply modal. Only straight 1/4, 1/8, 1/16, and 1/32 are offered. The template's internal 32-slot resolution captures ordinary human timing feel fine even for triplet-heavy source material; there just isn't a triplet-aware readout in the UI yet.
- Preview can't stay open for iterative tweaking.
showModalDialog's only documented way for a webview to report back to the extension isclose_and_send— there's no "send an update without closing" message. So Preview closes the dialog, creates the temporary copy, and that's it; adjusting further means reopening Apply Groove DNA… on the original clip(s) again. Rename and delete hit the same limit, but there the dialog is reopened automatically afterwards, so the round trip is mostly invisible — that isn't possible for Preview, whose whole point is to let you go listen to the result. - Arrangement take-lane (comping) selections aren't resolved. Resolving
an Arrangement selection's
selected_lanesback to aMidiTrackis straightforward by re-scanningsong.tracks, but doing the same for aTakeLanewould need its owning track, which nothing in this SDK version exposes. A lane that resolves to aTakeLaneis silently skipped rather than guessed at.
Where things are stored
<storageDirectory>/grooves/<id>.json (one file per template) plus an
index.json alongside them for fast listing, and
<storageDirectory>/preferences.json for your last-used Apply settings —
mirroring set-snapshot's reasoning for why storage lives under the
extension's own directory rather than next to the .als file.
Run in dev mode
npm start -- --live "/Applications/Ableton Live 12.4 Beta.app"
Tests
npm test
Rate this extension
One rating per account; you can change it any time.
Comments
No comments yet.