Bake window: derived note lengths carry exact durations, not ladder rungs — a long take is no longer cut at 384 beats

Hold keeps its picker. Also: one home for the %-fold, duration-ordered Hold travel, and a corrupt tail degrades to absent rather than fabricating one.
This commit is contained in:
2026-08-01 21:10:38 -04:00
parent 19aeb92775
commit 65f6070348
35 changed files with 772 additions and 226 deletions
+5 -3
View File
@@ -19,9 +19,11 @@ struct ChromeRects {
Rect toolbar; // full-width top row
Rect title; // the title text slot: the toolbar left of the control run
// The bake Hold cell. Its width is RESERVED unconditionally even though the control is
// only load-bearing for a looped Gate sound (bake_plan.h's bakeWindowNeedsHold): the run
// is right-anchored, so laying it out conditionally would slide Bake and Preview out from
// under the pointer whenever a loop is dialled in or out.
// only drawn for a looped Gate sound (bake_plan.h's bakeWindowNeedsHold). It is the
// LEFTMOST member of the right-anchored run, so no other member moves either way — what
// the reservation buys is a title slot that holds still: dialling a loop in or out would
// otherwise re-measure and re-ellipsize the capture name. The cost is ~62 px of dead
// toolbar in the common non-looped case.
Rect holdCell; // ---- the right-anchored run, left to right ----
Rect holdKnob;
Rect holdLabel;