arrange_chops_to_chord_tones
Retune each vocal chop to a chord tone from your progression, mapping chops to roots, thirds, or fifths for experimental glitch and granular effects.
Instructions
[NICHE] Retune each chop to a chord tone.
⚠️ WARNING: This is NOT how professional vocal chops are made.
Per-slice chord-tone retuning smears vocal formants and sounds
unnatural. chop_pipeline uses uniform transpose instead, which
is the correct default for EDM vocal chops.
This tool is kept for stylized experimental use (e.g., glitch / granular / heavily-processed chop effects where the pitched-up- demon-voice sound is the desired character). DO NOT use it as your default chop workflow.
Walks the chops in playback order. For each chop, determines
which chord it falls within (based on its time position) and
picks a chord tone according to layout. Applies the pitch
shift via take_set_pitch.
Args:
item_indices: JSON array of chop item indices (in playback order).
Typically the chops list returned by
item_split_at_transients.
chord_progression: Chord names separated by commas, pipes,
or dashes-with-spaces. E.g.,
"Cm7, Fm7, Bb7, Eb" or "Am - F - C - G".
beats_per_chord: How many beats each chord lasts. Default 4
(one bar per chord at 4/4).
bpm: Project tempo. Pass 0 to fetch from REAPER (extra round-trip).
layout: How to pick a chord tone for each chop:
- follow — cycle root → 3rd → 5th → root → 3rd → 5th
- ascending — climb chord tones across each chord
- porter — root → 5th → octave → 5th → root (Porter Robinson)
- root — every chop = root of current chord
source_root: Note name the source vocal is "in". Pitch shifts
are computed relative to this. Default "C".
If you don't know, leave as C; the result will
still be musical relative to the chord changes,
just not in absolute key.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bpm | No | ||
| layout | No | follow | |
| source_root | No | C | |
| item_indices | Yes | ||
| beats_per_chord | No | ||
| chord_progression | Yes |