Loop: an explicit enable, four named marks with grabbable caps, and the crossfade painted where it is actually heard

hasLoop becomes user-owned with the gestures as shortcuts onto it; no format change. START uses overlay/trace, not accent/primary, which is the waveform's own fill.
This commit is contained in:
2026-08-02 05:18:53 -04:00
parent ef59265e7a
commit a7c3c7a828
26 changed files with 1190 additions and 191 deletions
+7 -1
View File
@@ -2,7 +2,8 @@
// sample_chrome.h — interior geometry of the Sample face's CHROME band: the toolbar row
// (title + the whole right-anchored control run + Browse) over the strip row, which the
// piano strip has to itself. Reads the band rect the allocator hands it (sample_bands) and
// never allocates vertical space of its own.
// never allocates vertical space of its own. The run is right-anchored and the title takes
// the remainder, so a member added to the run costs the title, never the window's floor.
#include "core/instrument/ui/editor_geometry.h" // Rect
@@ -32,6 +33,11 @@ struct ChromeRects {
Rect velCell; // preview-velocity knob cell (knob + label band)
Rect velKnob;
Rect velLabel;
// The sustain loop's enable. Immediately left of the channel toggle because it is the same
// class of control — a playback mode of the loaded capture — and because the run is
// right-anchored, so the title slot absorbs its width and the editor's floor does not move.
Rect loopOff;
Rect loopOn;
Rect chanMono;
Rect chanStereo;
Rect navBrowse;