diff --git a/TODO-1.0.md b/TODO-1.0.md index d5ca8ec..863b2b7 100644 --- a/TODO-1.0.md +++ b/TODO-1.0.md @@ -17,8 +17,12 @@ questions**. A **second follow-up round** (2026-07-28, same day) settled nearly all of the remainder. Each item carries that round's verbatim as a third provenance block; -answers are folded the same way (marked *settled by second follow-up*). Items 1 -and 2 now have no open questions; item 3 retains two narrow ones. +answers are folded the same way (marked *settled by second follow-up*). + +A **third follow-up round** (2026-07-28, same day) settled item 3's last two +questions (point-count ceiling; delete gesture — reversing the second round's +alt-click answer back to right-click). **All three items now have no open +questions; the document is fully settled at the product level.** Ordering note: item 1's curve/overlay treatment explicitly anticipates item 2's filter envelope ("filter to be added"), and item 3 layers on both. They can land @@ -277,6 +281,14 @@ AHDSR envelope, and make the knob-deck row read in signal-flow order. > left click add, alt-click delete, cntrl-click toggles point hard or soft. > spline active -> stage knobs disabled. +**Daniel's third follow-up (verbatim, 2026-07-28).** + +> oh, maybe 64? is that way too much? I don't want to limit from long rhythmic +> phrases, which require a high resolution to be interesting +> +> oh, do right click delete instead for the spline +> 128 then + **Intent.** Offer a free-drawn alternative to every staged envelope: the user switches any EG from Staged to Spline mode and draws the contour directly, with the monotonic-spline machinery already proven by the velocity curve — enhanced @@ -299,11 +311,22 @@ so sharp corners are possible, not everything smoothed. the actual sample visually 1:1** — the contour's full width maps directly onto the displayed sample. Consequently a different-length capture rescales the stored contour to its own length. *(Settled by second follow-up.)* -- **Point-editing grammar.** **Left-click adds a point; alt-click deletes a - point; control-click toggles a point hard/smooth.** Alt-click-delete - supersedes the earlier speculation that the velocity-curve popup's - right-click-delete grammar would be reused. *(Settled by second follow-up; - control-click hard/smooth confirms the original ask.)* +- **Point-editing grammar.** **Left-click adds a point; right-click deletes a + point; control-click toggles a point hard/smooth.** *(Settled by third + follow-up; control-click hard/smooth confirms the original ask.)* Note for + readers of the prior revision: the second follow-up answered alt-click + delete; the third follow-up **supersedes that** with right-click delete — + which matches the velocity-curve popup's already-shipped right-click node + delete, giving one point-editing grammar across both spline consumers. +- **Point-count ceiling: 128.** A spline contour holds at most **128 points** + (floor: the two endpoints implied by full-length coverage). Daniel floated + 64 and raised it to 128 explicitly so the cap does not limit **long rhythmic + phrases, which require high resolution to be interesting** — at roughly two + points per articulation event, 64 points is about two bars of 16ths and 128 + about four. The ceiling is a musical bound, not a performance one (segment + lookup is logarithmic; on-screen the editor's 8 px minimum node separation + is the practical density limit anyway). **An engineer tempted to lower this + number should read that motivation first.** *(Settled by third follow-up.)* - **Staged controls disabled while Spline is active.** While a Spline EG is active, that envelope's **staged segment knobs are disabled** — inert, not merely inaudible — including their item-1 inner curve dials (the dial is @@ -338,25 +361,26 @@ so sharp corners are possible, not everything smoothed. **Open questions.** -- **Point-count bounds.** The add/delete/toggle gestures are settled, but any - minimum/maximum point count is unstated (a floor of two endpoints seems - implied by full-length coverage; a ceiling, if any, is Daniel's call). -- **Velocity-curve popup gesture convergence.** The Spline-EG grammar is - alt-click delete, but the existing velocity-curve popup shipped with - right-click node delete. Since the enhanced spline serves both, does the - popup migrate to the alt-click grammar for consistency, keep right-click, or - accept both? +- None remaining — both prior questions closed by the third follow-up round. + Point-count bounds: ceiling 128, floor two endpoints. Gesture convergence: + resolved by the delete-gesture reversal itself — the Spline EG's right-click + delete now matches the velocity-curve popup's shipped right-click node + delete, so **no migration is needed on either side**; one grammar serves + both consumers. **Acceptance criteria.** - Each of the pitch, filter, and amp EGs offers a Staged/Spline mode switch; in Spline mode the overlay (via the item-1 radio switch) shows and edits the drawn contour, and played notes audibly follow it. -- Left-click on the contour adds a point at that position; alt-click on a +- Left-click on the contour adds a point at that position; right-click on a point deletes it; control-click toggles it hard/smooth. Points are smooth by default; a hard point renders a visible sharp angle with no smoothing on either adjacent segment, and the discontinuous slope is audible where the modulation target makes it so (e.g. a pitch EG corner). +- A contour accepts points up to the **128-point ceiling**; attempting to add + beyond it is refused without disturbing the existing contour. The two + endpoints cannot be deleted (full-length coverage always holds). - A contour of several segments joined at hard points plays back over the full sample length exactly as drawn — including contours that rise and fall freely (no globally-monotone restriction), with no overshoot between any @@ -375,4 +399,6 @@ so sharp corners are possible, not everything smoothed. switch back — the staged values are exactly as left; switch forward again — the spline contour is exactly as drawn. Both survive save/reload. - The velocity→amp transfer-curve editor supports the same control-click - hard/smooth toggle with identical rendering behavior. + hard/smooth toggle with identical rendering behavior, and its existing + right-click node delete matches the Spline EG's delete gesture unchanged — + one point-editing grammar across both consumers.