From d35a55ec8e071943eabc4cfd244de4f8275415ae Mon Sep 17 00:00:00 2001 From: daniel-c-harvey Date: Sun, 2 Aug 2026 03:57:36 -0400 Subject: [PATCH] docs: correct the Gamma-W1 track count and table, and name T7 as a Rate prerequisite --- docs/PLAN.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/PLAN.md b/docs/PLAN.md index 8010b5a..b0a1cba 100644 --- a/docs/PLAN.md +++ b/docs/PLAN.md @@ -843,8 +843,9 @@ exact interim layout; do not "fix" it in a track that does not own it. ### Γ-W1 — Foundations -**Depends on:** nothing in this phase. **Five tracks, disjoint by surface** — re-verified -against this membership rather than carried over from the four-wave shape: +**Depends on:** nothing in this phase. **Six tracks, disjoint by surface** — re-verified +against this membership rather than carried over from the four-wave shape. The phase's track +numbering runs to T7; **T6 landed within this wave but has no entry in this document**: | Track | Owns | |---|---| @@ -853,6 +854,7 @@ against this membership rather than carried over from the four-wave shape: | **T3** `contour-trace-curves` | `shell/instrument/editor_paint_waveform.cpp`'s staged trace + a **new pure** tessellation module | | **T4** `editor-floor-and-row-law` | `ui/sample_bands.h` (the floor), `ui/knob_deck.h` (budget constants + two invalidated header notes), `ui/deck_groups` (the row predicate **only**), five test fixtures | | **T5** `preserve-time-stretch` | `engine/pitch_shift` + a new pure stretcher module, `engine/voice.{h,cpp}`'s Preserve read path | +| **T7** `psola-preserve` | a **new pure module** `engine/period_detect` (two-pass YIN, with its own `period_detect_tests` target), `pitch_shift`'s jump geometry, the load-time hook in `map/sample_map`'s `buildSampleData`, `voice`'s note-on | **Two shared files in the wave, named rather than discovered at merge.** `src/core/instrument/engine/CMakeLists.txt` — T2 declares two new pure libraries and their @@ -1503,7 +1505,8 @@ do not assume the number), `core/instrument/ui/deck_groups` (the PITCH/RATE descriptor **and** the three-state live predicate), `core/instrument/ui/deck_values` (the two new bindings). **Does not own** the deck's row layout — that is Γ-W3-T1 — nor the time-stretcher itself (Γ-W1-T5, already landed -by the time this track runs). +by the time this track runs) — nor the pitch-synchronous splice geometry that gates Preserve +Rate (Γ-W1-T7, also already landed by the time this track runs). **Behavior.** - **Rate: 50 %–200 %, default 100 % at true knob centre, exponential taper** — 50 % = −12 st,