Commit Graph

110 Commits

Author SHA1 Message Date
daniel 99fab6a4b6 docs: move Θ-W1-T1 and Θ-W1-T2 into COMPLETED with recorded deviations 2026-07-30 09:13:56 -04:00
daniel a689fb75eb docs: add PLAN.md — post-1.0 roadmap consolidating TODO-1.0's seventeen items
Two Greek-lettered phases (Θ instrument overhaul, Ξ resample loop): sequenced
waves, parallel tracks on disjoint surfaces, per-track acceptance criteria,
carried-forward open questions, traceability table. TODO-1.0.md retained as
verbatim-provenance appendix.
2026-07-29 23:09:53 -04:00
daniel be37192fe9 docs: record comment-reduction pass in COMPLETED, add comment conventions to CLAUDE.md 2026-07-29 21:22:37 -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
daniel 1bba95a0e8 docs(plan): settle Phase V forks V1-V4
V1 semver via project(VERSION), ext-state version stamp first-wave.
V2 plain -beta suffix. V3 console line + panel readout. V4 reverses
prior rec: beta ships as a separate coexisting binary with isolated
ext-state namespace + command-id prefix.
2026-07-26 07:01:56 -04:00
daniel 6659c2dbdf docs(product): fold the REAPER VST-host bridge into MIDI-playback framing
A VST hosted in REAPER can call back into REAPER's own API (name-resolved
via audioMaster), so a native ReaSampler instrument reads live project
ext-state directly. Re-frames the seam, D6, and the D1/D2 calculus.
2026-07-26 05:49:47 -04:00
daniel cce9016279 docs: frame versioning scheme + beta side-channel (Phase V)
Add docs/product/versioning-and-release.md and a PLAN.md Phase V pointer
laying out release versioning and the beta side-channel as decidable
options (V1-V4, unsettled - awaiting Daniel).
2026-07-26 05:48:45 -04:00
daniel 6c6a275234 Add MIDI-playback opportunity & design-space framing note
Frame the option space for a MIDI-triggered sampler consuming ReaSampler
banks: the extension-format ceiling (verified vs. vendored SDK headers),
the bank-as-shared-artifact seam, scope tiers, and the forks for Daniel.
2026-07-26 05:38:06 -04:00
daniel c33cb50632 Merge dev into phase-b-multibank (integrate parallel M7/8 + Phase D work before dev promotion)
# Conflicts:
#	CLAUDE.md
#	CMakeLists.txt
#	src/actions.cpp
#	src/bank_panel.cpp
#	src/persist.h
2026-07-25 23:30:44 -04:00
daniel ccf65415c9 fix(banks): enforce unique bank display names in-model + B3 review minors 2026-07-25 01:29:47 -04:00
daniel 878d807b12 docs: settle removal/prune forks R-A..R-E; add owned-file manifest seam
R-A this-bank; R-B batched REAPER undo points (Phase-B-wide, SDK must-verify);
R-C trash-preferred w/ unlink fallback; R-D owned-file manifest, landed early as
new B-cap capture point; R-E manual action + bank_panel button.
2026-07-24 04:59:28 -04:00
daniel b931dada0a Scope sample-remove (B5) and prune (Phase R) into the plan
Adds the two missing removal capabilities: sample-level remove (Phase B
point B5, index-only) and the prune file-lifecycle path (new Phase R, the
sole file-deleting op), resolving the dangling capture/prune reference.
Adds CONTEXT.md spec, PLAN.md points, and a product note; surfaces forks
R-A..R-E for decision.
2026-07-23 20:21:50 -04:00
daniel 92827c59be Lock M10 provenance spec to Daniel's fork picks (P1=a, P2=a)
Settle the reshaped Milestone 10: thin capture-recipe fingerprint and
bank-only re-capture; P3/P4 closed as moot. Remove the pending-picks
banner in PLAN.md and stamp the provenance product note as settled.
2026-07-23 20:10:54 -04:00
daniel 1743df135b Reshape M10 to provenance-only, reconciled with dual-canvas
Cut the null-test verify action and pre-FX-dry mechanism (Daniel's
call); keep provenance + re-capture-from-source. Sample.provenance
already exists/round-trips (M1), so M10 populates and consumes it. Add
docs/product/provenance.md with dual-canvas forks P1-P4 and the leaned
bank-only path; rewrite PLAN.md M10 as a proposal pending fork picks.
2026-07-23 20:04:54 -04:00
daniel 9a9339b90b refactor(capture): expose offline tail as docked-panel toggle
Replace the ...-with-tail variant actions with a pure tail_control module +
a docked-panel footer toggle (Off/Auto/Manual) read by CAPTURE_ITEM/TRACK.
Default None (byte-identical); Manual fixed 2s, in-memory session lifetime.
Tail mechanism unchanged; retired the variant ids.
2026-07-23 17:32:19 -04:00
daniel 92762e2b6c Docs: reconcile to two-scope capture model (master removed)
Update the CLAUDE.md FX-scope invariant to item+track only; note master
removal in COMPLETED.md; drop master references from the tail spec and PLAN
Milestone T; realtime now taps the selected track.
2026-07-23 16:42:42 -04:00