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
+7 -3
View File
@@ -109,9 +109,13 @@ bool ReaSamplerEditor::doubleClickChrome(const FaceLayout& fl, int x, int y) {
if (selectedId_.empty() || !processor_) return false;
if (bakeHoldNeeded_ && inKnobFace(fl.chrome.holdKnob, x, y)) {
// The default is READ off a default-constructed parameter set, so there is no second
// table of defaults to drift from the codec's own lift.
params_.bakeHold = InstrumentParams{}.bakeHold;
commitAndReload();
// table of defaults to drift from the codec's own lift. A reset that changes nothing
// commits nothing — the same rule the release path applies.
const instrument::note::Division reset = InstrumentParams{}.bakeHold;
if (params_.bakeHold != reset) {
params_.bakeHold = reset;
commitAndReload();
}
invalidate();
return true;
}