Commit Graph

71 Commits

Author SHA1 Message Date
daniel f57bf4fb6d docs: fix audit citations — bad line ranges, misattributed evidence, overclaimed severity
Corrects a false unguarded-include claim, re-scopes hot-path evidence to what's actually linked, replaces a nonexistent Fork-A collision scenario, fixes several miscounted TUs/libraries, re-grades two Fork-B items from Blocker to Major/non-blocker, and adds missing owners/done-conditions.
2026-08-02 06:39:31 -04:00
daniel 5455b1047b docs: audit the Linux build/toolchain gap ahead of Phase Λ 2026-08-02 06:07:20 -04:00
daniel 9c234c2e6b Ψ-W1-T2: disjoint per-mode solo surfaces and a playback-gated mode switch
Solo is cached, cleared and replayed per mode on a real switch only; the switch is refused visibly while the transport runs. The footer segment now routes through the activate actions, so a panel switch finally persists.
2026-08-01 19:43:18 -04:00
daniel 0a7778b396 docs: close Γ-F7 to signal-flow order and spec real units at the host boundary
The 44-id table stated in full. Adds the plain-value layer, a per-category
unit/precision table, the one-formatter invariant, a stepCount sweep, and the
filter read-side resolution.
2026-08-01 18:18:09 -04:00
daniel 2fa55658c1 docs: schedule VST3 parameters into Phase Γ
Automation ships as Γ-W4; the stage ceiling goes to 10 s in W1-T1 ahead of the
one-way door; a new Γ-W3-T2 corrects Ξ's bake reset list. Four waves, ten tracks.
Opens Γ-F7 on parameter order.
2026-08-01 17:26:18 -04:00
daniel 256216d670 docs: close Γ-F6 and resequence Phase Γ into three waves
Dynamic latency ships as ruled; the restart cost is re-attributed to our own
setActive and filed in TODO. The reflow splits canvas (W1-T4) from arrangement
(W3-T1); preserve-time-stretch moves to W1-T5.
2026-08-01 16:51:04 -04:00
daniel eb777f55e1 docs: spec Phase Γ — the instrument's control surface
Two-row deck reflow (sound/contour), double-height MASTER with limiter and
meter, PITCH/RATE deck, unit-driven knob law, contour-trace fix, and a
re-approached loop/crossfade UX. Folds rulings Γ-F1..Γ-F5; opens Γ-F6.
2026-08-01 16:29:32 -04:00
daniel 704b7ef373 fix: enlarge every sub-2px stroker width to 2px, per Daniel's ruling
Knob track arc, inner-dial needle, and mini velocity-trace all sat below the analytic stroker's opaque-core floor. Raised to 2px; updated visual-design-language.md and core/ui/CLAUDE.md to match; kept the 1px-behavior test, corrected its stale comment.
2026-08-01 15:11:58 -04:00
daniel 3fb77027c6 fix: close Θ-W7-T1 review — scaling guard, opacity claims, two vacuous test fixes
Guards the stroke blend against LICE_EXT_GET_SCALING, tightens the analytic-stroker's boxes and NaN handling, corrects the opaque-core threshold and inner-dial rationale in the docs, and re-derives two review-flagged tautological tests so they actually fail against the bugs they claim to catch.
2026-08-01 13:45:43 -04:00
daniel 2e09776342 fix: stroke arcs and splines analytically — opaque core, angle-independent weight
LICE_Arc never reaches opacity and ThickFLine's width is minor-axis. One
distance-to-polyline coverage mask, blended once, replaces both.
2026-08-01 13:18:21 -04:00
daniel 47f2a063e7 fix: close five Θ-W6-T1 review minors — headroom figure, knob-face radius, degenerate band clamp
Aligns inKnobFace's hit radius with computeKnob's draw-side min(w,h) rule and adds a non-square-rect test; clamps halfSpan for degenerate waveform bands with a test; fixes stale docs/comments and annotates an uncommitted perf measurement.
2026-08-01 10:01:40 -04:00
daniel ca464397b2 fix: restore waveform symmetry about the midline, cut deck_values' link to the bank model, and unit-test the column arithmetic
The waveform column's vertical extents move to pure component_geometry so the shared
primitive stops being untested; PlaySeconds hoists into a header-only play_seconds target.
2026-08-01 09:47:07 -04:00
daniel 7f74b11dce feat: legible ReaSampler 9000 editor — bigger knobs, ms time constants, per-ring double-click reset, and an antialiased draw pass 2026-08-01 09:16:30 -04:00
daniel a19d645a49 palette: enlarge the region title into WCAG large class; repoint the grabbed envelope handle off hue
Corrects theme.h's large-text thresholds, names accent/secondary's real
binding limiter, and adds compositeOver so the loop-span fill's 2.25:1
under-floor pair is asserted rather than assumed.
2026-07-31 14:07:01 -04:00
daniel 91f71f92bd palette: give the spectral mid and the envelope trace their own roles
Decouples the keyboard strip's mid stop from accent/secondary, which the
deep-teal darkening had inverted. Adds overlay/trace (#816AA6), the first
value to clear 3:1 against the waveform. Replaces the frozen-premise test.
2026-07-31 13:27:20 -04:00
daniel 85cc340e58 docs: correct FB1 guardrail — r11 did bump ComponentState v7-v8 for masterGainLinear 2026-07-29 15:29:00 -04:00
daniel 1f24c4b095 docs: 1.0 documentation restructure
Split root CLAUDE.md into 19 per-directory files scoped to their source area.
Roll v0 history into docs/ARCHIVE.md; retire CONTEXT.md, CONTEXT-ARCHIVE.md,
PLAN.md, COMPLETED.md. Move plan docs under docs/. Rescue 9 live deferrals
into docs/TODO.md.
2026-07-29 15:09:48 -04:00
daniel 16b2a1b8ca Q-W0 code-review remediation: pitch_shift follower self-heal, T3-03 rate bail, doc/comment riders 2026-07-28 19:28:48 -04:00
daniel 3eaa0b886e docs(Q-W0): committed code-quality audit — 59 findings triaged, Q-W2v VST wave + Q-W2/Q-W3 reshapes proposed, Daniel decision list for sign-off 2026-07-28 17:00:06 -04:00
daniel 2dbefb8c01 audit(q-w0-t4): sizing census — 14 oversize files, VST side unowned; propose Q-W2v wave, 8-seam bank_panel, ICaptureBackend is dead 2026-07-28 16:50:47 -04:00
daniel ca086f4009 docs(q-w0): T3 env-coupled-constant audit — 7 findings (2 fix-now: gain-ramp step, fade-ceiling frames); persistence surfaces clean 2026-07-28 16:50:38 -04:00
daniel dfe6ccbddd docs(q-w0): T2 architecture audit — wire-cursor hardening drift, 5th JSON decoder, 5x readFileBytes, rect-type zoo; 11 triaged findings 2026-07-28 16:43:34 -04:00
daniel f0d5d23171 docs(q-w0): T1 DSP audit — 11 triaged findings, SOLA engine sound; stereo splice decorrelation is the headline 2026-07-28 16:43:24 -04:00
daniel a4e33b1c04 docs(s-view): spec the r11 Sample-face recomposition (knob deck, curve popup, full-width hero) for Wave B
Adds S-VIEW-11/12/13 to PLAN, r11 addendum, and forks R11-F1 (window default height) + R11-F2 (Zone-panel knob parity) for Daniel.
2026-07-27 18:25:32 -04:00
daniel 25c77a5de3 docs(phase-q): settle Q-10 (audit-report home) and Q-11 (pitch-remediation depth) 2026-07-27 14:36:57 -04:00
daniel bbfb033819 docs(plan): add Phase Q pre-restructure functional+DSP audit wave (Q-W0) 2026-07-27 14:29:56 -04:00
daniel 5a859cc9bf docs(phase-s): fold velocity->amp transfer-curve editor into S-VIEW (r10)
Per-PerformanceZone state home, new pure velocity_curve module, application at
Voice::start(), Sample-view editor UI. New PLAN points S-VIEW-9 (foundation,
blocked by Wave 1 T-KEYTRK) + S-VIEW-10 (Wave 2 shell). Fork R10-F1 (flat-y=1
default is a non-back-compat behavior change) left open for Daniel.
2026-07-27 13:35:01 -04:00
daniel 3b9b78b82c docs(phase-s): settle S-VIEW velocity persistence + draggable nodes, single-pass on L3
F1 -> preview velocity persists via VST3 component state (v5->v6). F2 -> envelope nodes draggable via new pure envelope_edit module. Drop the two-pass L3 restyle framing; build on the merged L3 LnF. F3 remains open.
2026-07-27 12:57:08 -04:00
daniel 5ec84ab0eb docs: mark M9 abandoned in Phase Q framing; add L3 + bank_grid/tab_strip to CLAUDE.md
M9 deferred->abandoned in code-organization.md gate (disposition note removed).
CLAUDE.md: L3 identity clause, M9-abandoned line, bank_grid/tab_strip in module
list and targets table.
2026-07-27 12:51:38 -04:00
daniel 85eac37912 docs: close out Phase L L3 — archive to COMPLETED, mark landed in design-language doc
L3 (VST editor + embed-strip restyle) is on dev. Append its COMPLETED entry
and flip visual-design-language.md §5.3/5.4 from GATED to landed / Phase L
complete. PLAN.md + CONTEXT.md L3 edits already landed via the S-VIEW commit.
2026-07-27 12:50:00 -04:00
daniel 13b23801a0 docs(phase-s): spec three-view editor redesign (S-VIEW) — Sample/Browse/Zone 2026-07-27 12:46:43 -04:00
daniel 0e9ef05c75 docs(product): spec S18 — VST3 channel isolation (beta ReaSampler 9000 pairs with beta extension only) 2026-07-27 04:16:49 -04:00
daniel bf1bf5283c docs(product): reshape S16 to Varispeed/Preserve pitch-engine modes (duration-preserving correction)
Per-zone toggle: Varispeed (classic, cheap) vs Preserve (duration-holding,
WDL_SimplePitchShifter candidate — per-voice RT viability assessed: pre-warm
settles onset latency + queue growth; quality basic; hand-rolled pure module
held as upgrade). Pitch envelope rides either engine. Fork S16-F1: default
mode is Daniel's call.
2026-07-27 04:09:50 -04:00
daniel c64ab687bf docs(product): spec Phase S sampling modes (S15 Trigger/Gate) + pitch envelope (S16)
Gate: AHDSR + loops; Trigger: fade-in / %-length / fade-out, note-off-immune.
Start point joins the instrument-side overrides. Pitch env is a per-frame
ratio multiply on the existing core — no resampler rewrite. WDL swept:
sinc resampler held as optional upgrade; no elastique-class stretch in WDL.
2026-07-27 04:09:50 -04:00
daniel 991c190bb8 docs(product): reframe S10 capture-first (browser + single-capture setup); reverse S4 auto-select; settle S-NAME-1 filename rename 2026-07-27 04:09:50 -04:00
daniel 5de2183ce3 docs: detach design-system (S0-DS/S14) to Phase L; leave pointers
Remove S0-DS and S14 from Phase S PLAN/CONTEXT (moved to Phase L on dev),
restore S10's Depends-on without the kit gate; S10-S13 adopt the Phase L
kit when it lands rather than being gated on it.
2026-07-27 04:09:49 -04:00
daniel 3d6c0ab66a docs(product): system-wide visual design language (S0-DS kit + S14 panel refresh)
LICE verified sufficient from vendored WDL — current editor draws at its
floor (flat fills, raw GDI text); no framework shift needed, D-A holds.
Adds design-language doc (palette, three directions, motion policy),
S0-DS shared drawing kit before S10, S14 panel refresh.
2026-07-27 04:09:49 -04:00
daniel 8c9cf38780 docs(product): scope ReaSampler 9000 UX overhaul (S10-S13) + record instrument name
Post-DAW-test: name the instrument ReaSampler 9000; spec the better-than-RS5K
overhaul — S10 keyboard-strip keymap editor, S11 waveform + draggable loop
points, S12 scroll/search/direct-entry/ADSR, S13 drop-to-load via the S8 relay.
VST3 class UID locked unchangeable; S-NAME-1 (binary filename) is Daniel's call.
2026-07-27 04:09:49 -04:00
daniel ed2df9c1d5 docs: spec Phase S stereo (S7), bank-ingest (S8), change-detection (S9)
Settled 2026-07-26: per-instance mono|stereo mode with automatic bus
negotiation (S3-core extension); ingest routes through the bank, extension-
owned, instrument stays read-only; bank-generation counter for hands-free
recapture refresh. ME + drop-target SDK limits verified; spikes flagged.
2026-07-27 04:09:49 -04:00
daniel 5595ba42f9 docs: record settled L3 decision — beta title band stays textual, no channel accent
Daniel (2026-07-27): the S18 beta channel title band gets no distinct
visual accent; L3 restyles it in the standard B pastel palette and the
beta-vs-stable distinction stays purely textual. Closes the one open fork
from the L3 readiness review.
2026-07-27 03:51:47 -04:00
daniel 8c65069fc3 docs(phase-q): reconcile gate to S+L3 and add naming-consistency dimension
Correct the Phase Q gate (L2 landed; outstanding is Phase S + Phase L L3;
D2 complete, M9 deferred). Add a grep-verified naming audit (code-organization
§2b) and forks Q-7/Q-8/Q-9; FOREVER-STABLE contract strings excluded.
2026-07-27 03:50:20 -04:00
daniel a434ef47f8 docs(plan): ground L3 readiness against landed Phase S surfaces
Both VST draw shells still draw flat off a local pre-L1 palette — L3
restyle confirmed live, not a born-in-kit no-op. Name the concrete gate
files, add the palette-reconcile point, enumerate the landed editor set.
2026-07-27 03:42:24 -04:00
daniel 6fece8d571 docs(product): DS-2 revised — three-accent pastel palette + REAPER-grey neutrals
Replace the single electric-cyan accent with a pastel lime/teal/purple three-accent system; shift neutral surfaces + text from near-black to REAPER's mid-grey theme family. Font upgrade declined (no bundling). L3 conformed to the new look; gate intact.
2026-07-26 21:48:26 -04:00
daniel a20cb46d65 docs: spec Phase Q (Quality) — structural reorganization pillar
Product framing (docs/product/code-organization.md), PLAN.md $Phase Q
(Q-W1..Q-W6), CONTEXT.md $Phase Q. Gated on tree quiescence; zero-hot-path-cost
acceptance bar. Namespace Q settled; Q-2..Q-6 carry recommendations.
2026-07-26 20:56:31 -04:00
daniel 22f91ac1d1 docs(product): split look-and-feel into Phase L (L1 kit / L2 panel / L3 VST-restyle)
Port visual-design-language.md to dev with DS-1/2/3 settled (B + spectral
strip; LICE + WDL free game; thorough M11-aware panel layout). L1 shared
kit; L2 panel redesign after M11 merges; L3 VST restyle gated on Phase S
landing. Phase S adopts the kit when it lands — not gated.
2026-07-26 19:36:00 -04:00
daniel a75174f3d5 docs: archive M10 provenance to COMPLETED; reconcile CLAUDE.md + CONTEXT.md
M10 landed. CLAUDE.md gains provenance/provenance_shell entries, test
target, and a current-state refresh; CONTEXT.md null-test line annotated
(verification action cut, manual only).
2026-07-26 18:16:36 -04:00
daniel ff4eb26eab ux: drop last-reference confirm from sample remove; silent remove via undo (R-B) 2026-07-26 17:27:05 -04:00
daniel 6a6d305cf2 docs: archive Phase V (V1-V4) to COMPLETED; reconcile CLAUDE.md
Phase V landed: app_version module, ext-state version stamp, show-version
action, beta-in-isolation channel build. CLAUDE.md gains the module entry,
version key, test target, and beta-build note.
2026-07-26 16:56:04 -04:00
daniel 10ceb95ddd docs: scope MIDI-playback instrument as Phase S (native VST3, second artifact)
Settle forks D-A..D-D: bare Steinberg VST3 SDK + LICE editor; split seam
with root-note/loop-points on Sample now; Tier 0-1 committed; embedded
TCP/MCP UI scheduled. Phase S added to PLAN.md and CONTEXT.md spec.
2026-07-26 14:45:02 -04:00
daniel 0d07d3cbfe docs(product): lock D1/D5/D6 for MIDI-playback instrument; add bare-VST3-vs-JUCE assessment
Native VST3, Windows-only, two-products-but-integrated. Retire the JSFX fork
in place, add grounded assessment of the raw Steinberg VST3 surface without JUCE,
and re-present the residual forks in priority order.
2026-07-26 07:10:04 -04:00