feat: humanize MIDI timing and dynamics with reproducible seeded edits
This commit is contained in:
parent
fc76bf6803
commit
d034417c8c
9 changed files with 51 additions and 7 deletions
|
|
@ -26,3 +26,7 @@ The existing Split clip at cursor command (S) now handles MIDI as well as audio.
|
|||
## Phase 63 — MIDI Clip Consolidation
|
||||
|
||||
Edit/Consolidate MIDI clips merges two or more selected MIDI clips on one track. The new clip spans their full bounding range; gaps and overlapping notes remain. Notes outside visible trims are discarded and crossing notes are cropped to audible boundaries. IDs are fresh. Cropped notes start anew, so envelope/phase behavior can change. Audio or cross-track selections reject atomically.
|
||||
|
||||
## Phase 64 — Deterministic MIDI Humanization
|
||||
|
||||
Edit/MIDI tools/Humanize applies timing variation up to 960 ticks and velocity variation up to 127, using a 32-bit seed and stable note IDs. Repeating from the same original state reproduces results; applying repeatedly accumulates edits. All source notes are affected, including hidden trimmed notes. Timing outside source bounds rejects the entire edit; velocities clamp to 1..127. This is offline editing, not live randomness.
|
||||
|
|
|
|||
|
|
@ -1587,12 +1587,12 @@ Implemented: transactional consolidation of selected same-track MIDI clips into
|
|||
Apply seeded timing and velocity variation to MIDI clip sources with reproducible results, bounds checks and undo.
|
||||
|
||||
### Tasks and acceptance criteria
|
||||
- [ ] Implement bounded C99 model/control APIs and accessible GUI commands.
|
||||
- [ ] Preserve transactional errors, history, compatibility and callback safety.
|
||||
- [ ] Verify the feature with automated model/GUI tests and document limitations.
|
||||
- [x] Implement bounded C99 model/control APIs and accessible GUI commands.
|
||||
- [x] Preserve transactional errors, history, compatibility and callback safety.
|
||||
- [x] Verify the feature with automated model/GUI tests and document limitations.
|
||||
|
||||
### Implementation status
|
||||
Planned.
|
||||
Implemented: seeded note-ID keyed timing/velocity humanization, independent of selection order. Timing overflow rejects atomically; velocity saturates to MIDI bounds. Core reproducibility/range/rollback and GUI undo tests pass.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue