95 lines
5.1 KiB
Markdown
95 lines
5.1 KiB
Markdown
# Creative workflow additions (Phases 90–99)
|
||
|
||
These features prioritize fast musical experiments and retain the existing
|
||
control-thread preparation and project undo model. They introduce no dependency
|
||
or project-format change. Each phase is qualified separately in ROADMAP.md.
|
||
|
||
## Selected track inserts
|
||
|
||
**Track → Show selected track inserts** (Ctrl+5) opens the sequencer or active
|
||
mixer selection directly. Bus inserts are unsupported; no selection leaves the
|
||
workspace unchanged. **View → Track inserts** still opens the rack independently.
|
||
Ctrl+4 remains the piano-roll command, resolving the earlier shortcut collision.
|
||
|
||
## Duplicate an effect
|
||
|
||
Select a slot, then **Rack actions → Duplicate effect**. The copy appears directly
|
||
after it, retaining controls, automation, wet amount and bypass. It is an
|
||
independent instance with fresh processing history. Eight-slot capacity and
|
||
plugin preparation errors preserve the old chain; Undo removes the copy.
|
||
|
||
## Copy a chain between tracks
|
||
|
||
**Rack actions → Copy chain** stores an independent metadata snapshot. Select
|
||
another track and use **Paste chain (replace)** to replace its complete chain,
|
||
including output gain. Copying neither loads modules nor changes undo history;
|
||
pasting prepares the candidate and is undoable. The clipboard is internal to
|
||
this session and clears on successful New/Open. Preparation errors keep both
|
||
the destination and clipboard intact.
|
||
|
||
## Compare effect configurations
|
||
|
||
**Rack actions → Compare** captures or recalls A and B. Each slot is bound to the
|
||
track where it was captured; Recall is available only on that track. Capturing
|
||
copies metadata without affecting undo or loading modules. Recall prepares a
|
||
fresh chain and is undoable; histories and opaque plugin states are excluded.
|
||
The two comparison slots clear on successful New/Open. Comparisons stop
|
||
transport when recalled, following the existing safe insert-edit workflow.
|
||
|
||
## Creative starting points
|
||
|
||
**Add effect → Templates (replace)** offers Slapback (80 ms delay), Dub Echo
|
||
(375 ms feedback delay into a short reverb), and Ambient Space (long reverb into
|
||
500 ms delay). They replace the current chain in one undoable edit and require
|
||
no external plugins. All controls remain editable. Times are milliseconds;
|
||
feedback and wet levels are deliberate starting points, without automatic
|
||
loudness matching or a claim that the presets suit every source.
|
||
|
||
## Bulk rack actions
|
||
|
||
**Enable all effects**, **Bypass all effects**, and **Clear chain** each prepare
|
||
one undoable edit. Enabling all intentionally enables every slot, including
|
||
previously bypassed effects; Undo restores the previous mixed bypass state.
|
||
Clear removes slots while preserving chain output gain. No plugin resources
|
||
are released in the audio callback. Empty racks return a no-result error.
|
||
|
||
## Meter while editing effects
|
||
|
||
The insert workspace shows the selected track's stereo sample peaks after its
|
||
fader and before its bus, including the effects' output. Green bars release at
|
||
20 dB/s. A sticky red CLIP appears at unity or above; click the display to clear
|
||
it. Stopped, offline or missing-track readings show the -90 dBFS floor. Changing
|
||
tracks clears the indicator. These are sample peaks, not true-peak or loudness
|
||
measurements. The display shares the mixer's existing backend snapshot read.
|
||
|
||
## Tap tempo
|
||
|
||
Tap the transport **Tap** button at a quarter-note pulse. The estimator averages
|
||
the last four valid intervals and accepts 20–300 BPM. The first tap primes it;
|
||
a pause longer than three seconds restarts it. Too-fast or backward timestamps
|
||
are ignored. Each accepted tempo is an undoable edit and stops playback before
|
||
preparation; tapping is unavailable while recording. New/Open resets tap history.
|
||
The estimator uses monotonic control-thread time, with no audio-callback clock
|
||
access or allocation. Tap timing is not a beat detector or MIDI clock sync.
|
||
|
||
## Audio crossfades
|
||
|
||
Select two partially overlapping audio clips on the same track and choose
|
||
**Edit → Audio tools → Crossfade two selected clips**. The earlier clip fades
|
||
out across the overlap while the later clip fades in. Gains, positions, source
|
||
files and the opposite fades are preserved. Equal boundaries, containment,
|
||
adjacency, cross-track selections and MIDI clips reject without partial edits.
|
||
This is a linear tick-based crossfade using existing clip envelopes; it does
|
||
not move clips, create overlaps or offer equal-power curves. Discrete sample
|
||
endpoints retain the engine's existing one-sample boundary convention.
|
||
|
||
## Chord strumming
|
||
|
||
Select MIDI clips and use **Edit → MIDI tools → Strum chords...**. Enter spacing
|
||
in ticks (1–960) and direction (0 ascending, 1 descending). Notes sharing a source
|
||
onset and MIDI channel within each clip form a chord. Equal pitches use stable
|
||
note-ID order. Each successive note starts one spacing later, while its end,
|
||
pitch, velocity and channel remain unchanged. Single notes remain unchanged.
|
||
Any resulting zero/negative duration rejects the entire edit; Undo restores the
|
||
whole selection. This edits source notes, including notes hidden by clip trims.
|
||
It does not generate an arpeggiator or schedule live input.
|