xtc/docs/MODERN_EDITING.md

141 lines
5.6 KiB
Markdown
Raw Permalink Normal View History

2026-11-06 15:20:20 +01:00
# Modern Editing Workflows
2026-11-06 15:20:20 +01:00
These control-thread edits were introduced without changing format 15. The
current writer uses format 16 for arrangement markers and still reads older
projects. Session selections, clipboard and comparison snapshots are not saved
in projects. Audio callbacks continue to consume prepared plans; edits use the
existing stop/history workflow.
2026-11-06 15:20:20 +01:00
---
2026-11-06 15:20:20 +01:00
## Arrangement Multi-Selection
Shift-click clips to toggle selection; Ctrl+A in the sequencer or Edit/Select
all clips selects every clip. Plain clicking replaces the selection. Selection
is session UI state; no marquee selection yet.
---
2026-11-06 14:12:22 +01:00
## Transactional Group Editing
2026-11-06 15:20:20 +01:00
Use Left/Right in the sequencer (or Edit/Nudge selection) to move the selected
phrase by the current snap step. Ctrl+D duplicates after its complete bounding
span; Delete removes selected clips. Edits are atomic and undoable. Mouse
dragging remains a single-clip gesture.
---
2026-11-06 14:12:22 +01:00
## Arrangement Clipboard
2026-11-06 15:20:20 +01:00
Ctrl+C/Ctrl+V in the sequencer, or Edit/Copy clips and Paste clips at cursor,
copy/paste the selection. Earliest clip lands on the cursor. The earliest source
track maps to the currently selected destination track; intervening track
spacing is retained. All required tracks must already exist and must not be
buses. Instruments, automation and media bytes are not copied. The clipboard
survives document changes within the window but is not the OS clipboard.
---
2026-11-06 14:12:22 +01:00
## Repeat Arrangement Patterns
2026-11-06 15:20:20 +01:00
Edit/Repeat selected phrase asks for 1..1024 additional copies. The bounding
span includes gaps and overlaps; copies remain on their original tracks. The
entire repeat is one undo step. Clip/note capacity and timeline endpoints can
limit the requested count.
---
2026-11-06 14:12:22 +01:00
## Align and Slip Editing
2026-11-06 15:20:20 +01:00
Edit/Align clip starts to cursor places every selected start at the cursor. Slip
sources earlier/later changes source offsets by the snap step while retaining
timeline positions and durations. Trimming must leave source material available;
an invalid slip rejects the whole selection. No time stretching or destructive
media edits are performed.
---
2026-11-06 14:12:22 +01:00
## MIDI Swing Quantization
2026-11-06 15:20:20 +01:00
Select MIDI clips and use Edit/MIDI tools/Swing quantize. Grid is in source
ticks; swing delays alternate subdivisions by 0..half a grid step, while
strength blends the old start toward the nearest swung point. Durations stay
fixed. All source notes are affected, including notes outside visible trims.
Mixed audio/MIDI selections and notes that would exceed source bounds reject the
entire edit. This is destructive note editing with undo, not a live groove
engine.
---
2026-11-06 14:12:22 +01:00
## MIDI Legato and Gate Tools
2026-11-06 15:20:20 +01:00
Edit/MIDI tools/Note gate scales lengths from 1 to 400 percent, rounded to at
least one tick. Legato ends notes at the next strictly later onset in the same
clip and channel; notes in a chord end together. The final onset extends to
source end. Gate expansion beyond the source rejects the whole edit. Undo
restores original durations.
---
2026-11-06 14:12:22 +01:00
## MIDI Scale Correction
2026-11-06 15:20:20 +01:00
Edit/MIDI tools/Correct to scale takes a root (0=C through 11=B) and chromatic,
major or natural minor. Each pitch moves to the nearest permitted MIDI note;
ties choose the lower pitch. Timing, channel and velocity remain unchanged.
Corrections can produce unison notes; notes are not merged. This changes MIDI
notes, not audio pitch or a live scale filter.
---
2026-11-06 14:12:22 +01:00
## MIDI Velocity Shaping
2026-11-06 15:20:20 +01:00
Edit/MIDI tools/Shape velocities scales from 0 to 400 percent, rounds, then
applies an offset from -127 to 127. Results clamp to 1..127, keeping every note
audible rather than introducing velocity-zero note-offs. Use 0 percent with a
positive offset for a fixed velocity. No randomization is applied.
---
2026-11-06 14:12:22 +01:00
## Batch Audio Fade Tools
2026-11-06 15:20:20 +01:00
Edit/Audio tools/Set boundary fades sets linear fade-in and fade-out lengths in
ticks; 0 or Remove boundary fades clears them. Each fade must fit within half of
every selected clip duration. Gain and source offsets stay unchanged. These are
boundary envelopes, not overlap-aware crossfades, equal-power curves or
destructive WAV processing.
---
2026-11-06 14:12:22 +01:00
## Mixer A/B Comparison
2026-11-06 15:20:20 +01:00
Edit/Mixer comparison captures or recalls A and B. Capture stores static gain,
pan, mute and solo for every track and bus without changing the document. Recall
requires the same stable track IDs, stops playback through the normal edit guard
and creates one undo step. Track order may change. Routing, plugins and
automation are excluded; automation still overrides static gain and pan. Slots
are session-only and clear on New/Open. This is static mix comparison, not
seamless live scene morphing.
2026-11-06 15:20:20 +01:00
---
2026-11-06 15:20:20 +01:00
## Validation and Remaining Scope
The code is built with warnings enabled and tested. Reproduce the core,
transaction and allocation-failure checks with:
```sh
2026-11-06 19:05:14 +01:00
cmake --build build/roadmap-audit --parallel && cmake --build build/roadmap-audit --target gui test-reliability
cmake --build build/roadmap-audit --target test-gui-modern-editing
```
The full GUI, instrument/effect plugin fixtures, software JACK lifecycle, Clang
static analysis, AddressSanitizer/UBSan and staged default/custom installation
checks also cover the integrated changes. GUI leak checks use only the existing
system Fontconfig suppression. Save/reload comparisons render identical nonzero
MIDI output after musical transforms; no project format migration is required.
2026-11-06 14:12:22 +01:00
These workflows improve arrangement and musical editing workflows. They do not
2026-11-06 15:20:20 +01:00
provide DAW feature parity: time stretching, comping, a clip launcher, tempo
maps, track insert chains and customizable shortcuts need separate designs. No
new dependencies or audio-callback operations are introduced. Human listening,
physical devices and arbitrary third-party plugins remain unqualified.