MIDI Editor: Sustain Pedal Processing (CC64) — lanes, legato merge, half-pedal & re-articulation
under review
Sergei Petrosian
Description:
Add dedicated
Sustain Pedal (CC64)
tools in the MIDI editor: a visual lane with pedal-down regions, smart functions to extend/merge notes under pedal
, split at lifts
, quantize/humanize pedal on/off
, and support for half-pedaling
. Include companion lanes for Sostenuto (CC66)
and Soft (CC67)
, plus one-click “bake/unbake” between pedal data and note lengths.Problem:
Pedaled performances (piano, EP) record as short notes + CC64 holds. Editing or quantizing them is tedious: notes look staccato, pedal lifts get misplaced, and repedaling/half-pedal nuance gets lost. Fixing stuck notes, aligning lifts to the grid/groove, or converting pedal gestures into clean legato lengths currently requires time-consuming manual work.
Proposed Solution:
- CC Lanes & Visualization
- CC64 lane with
pedal-down shading
; threshold & hysteresis to define “down” (e.g., ≥64 by default). -
Half-pedal curve
(map 0–127 to sustain amount), optional per-instrument response. - Optional lanes for
CC66 (Sostenuto)
and CC67 (Soft)
with distinct shading. - Smart Edit Operations
-
Pedal → Extend Notes:
lengthen note-offs to the next pedal lift (legato merge across pedal). -
Lift-Aware Split:
cut sustained notes exactly at pedal lifts (with optional gap ms). -
Render Sustain to Note Lengths / Extract Sustain from Overlaps
(bake/unbake). -
Quantize Pedal On/Off
to grid or groove
with feel %, and Humanize
(±ticks) for natural lifts. -
Repedaling handling:
treat short lifts below N ms as continuous sustain. -
Half-Pedal Scaling:
compress/expand sustain amount by curve; clamp min hold. -
Re-articulate after Lift:
insert short release gaps or staccatissimo per setting. -
Fix Stuck Notes:
detect mismatched offs masked by pedal; generate/correct note-offs. - Editing UX
- Pencil/erase for pedal envelopes; box-edit multiple lifts; nudge on/off by ticks/beats.
- Readouts while dragging:
On @ 33.3.2 • Off @ 34.1.1 (Δ 0.6 beat)
. -
Chase state
when starting playback mid-clip (reconstruct held notes from current pedal value). - Actions & Variables
- Actions:
Extend Notes Under Sustain
, Split at Pedal Lifts
, Quantize Pedal On/Off
, Bake Sustain to Lengths
, Extract Sustain
, Toggle Half-Pedal
, Fix Stuck Notes
. - Vars:
cc64.down
(bool), cc64.value
, cc64.threshold
, pedal.liftCount
, pedal.halfAmount
. - Safety & Integration
- Works with tempo/quantize changes and groove templates; fully undoable.
- Per-track defaults for thresholds, repedal window, and half-pedal curve.
Benefits:
- Clean, legible MIDI that reflects how pedaling actually sustains notes.
- Faster editing and musically correct quantization of pedal gestures.
- Preserves nuance (repedals, half-pedal) while fixing timing and stuck notes.
- Flexible workflows: keep CC64 live or bake into note lengths for export.
Examples:
- Convert a recorded piano take: Bake Sustain to Lengths, quantize lifts to1/4-groove, thenUnbaketo restore CC64 if needed.
- After a tempo change, Quantize Pedal On/OffandRepedal window = 80 msto maintain natural legato.
- Use Lift-Aware Splitto create re-articulations at each pedal up; add a10 msgap for clarity.
- Enable Half-Pedalwith a gentle curve so values 50–90 produce partial sustain instead of binary holds.
This summary was automatically generated by GPT-5 Thinking on 2025-10-14.
Original Post:
Midi editor: process sustain pedal messages
Hi, I record piano into midi clip, the clip then has visible dots that mark places where I press and release the sustain pedal. However, I do not see the marks in the midi editor and hence cannot edit them. So loopy records midi messages for pressing and releasing the pedal, but doesn’t allow to process it.
ultracello
under review