daniel
b09f375490
docs: fix swell_resgen.php path and repair citations broken by the CONTEXT split
...
mac_resgen.php does not exist. 34 CONTEXT.md citations retargeted to
CONTEXT-ARCHIVE.md; 6 self-inverted refs in the archive corrected.
2026-07-27 21:32:22 -04:00
daniel
885b7f29a2
Phase S voices: user-set polyphony, mono stack (retrig|legato), isolated preview card, idle-drain retirement; unity bypass preview-only (v7)
2026-07-27 21:29:30 -04:00
daniel
e4f4691a0d
docs: rewrite README to current state, retire TODO.md, fix stale mpe_model ref
...
README was frozen at Milestone 0. TODO.md was entirely M0-M2 tasks, all
landed. CONTEXT.md intro cited a file deleted in M0.
2026-07-27 21:07:19 -04:00
daniel
0e7b36eb17
docs(claude): grep CONTEXT.md by phase, don't read it whole; note CONTEXT-ARCHIVE.md
2026-07-27 20:27:00 -04:00
daniel
959019bcf5
docs(context): split landed build detail into CONTEXT-ARCHIVE.md
...
CONTEXT.md 270k -> 186k chars. Module architecture, API surface, and
landed implementation specs moved verbatim; settled decisions,
invariants, guardrails, and unbuilt Phase Q / S-VIEW Wave B retained.
2026-07-27 20:23:19 -04:00
daniel
d9321eaf3a
FA1: unity-Preserve bypass kills preview onset latency; drain-slot reload keeps voices ringing through curve edits; velocity path proven end-to-end
2026-07-27 19:50:21 -04:00
daniel
2b8ab4abe4
Merge pS-fa3-waveform: gap-free per-column min/max waveform render (columnMinMax in peaks, shared across panel + editor)
2026-07-27 19:47:49 -04:00
daniel
69d5621f51
Merge pS-zonebleed: fix zone-bleed (3a) — Sample-face zone reconcile so the played zone matches the drawn one
2026-07-27 19:47:09 -04:00
daniel
6056302752
Merge pS-fa2-envmodel: fully-editable bounded amp envelope nodes (Gate + Trigger)
2026-07-27 19:47:02 -04:00
daniel
e550234d0c
Merge pS-fa4-knob: radial KNOB primitive (7->5 arc, needle, vertical-drag) in param_slider
2026-07-27 19:46:56 -04:00
daniel
88c122fcb4
fix(zone-view): Add Zone seeds narrow octave range so new zones survive reconcile
2026-07-27 19:38:03 -04:00
daniel
1e645adcef
fix(draw_kit): reclaim 4x waveform oversample; relocate waveformColumnCount to component_geometry
...
kWaveformOversample set to 1 (was 4) — overbinning produced byte-identical pixels because columnMinMax exact partition already makes the draw gap-free. Comments credit columnMinMax, not oversampling.
2026-07-27 19:37:53 -04:00
daniel
9b3a9afb36
docs(claude): condense CLAUDE.md 42k -> 18k chars
...
Delete phase changelog and CMake target table, reduce module entries to
one clause each. All load-bearing invariants preserved verbatim.
2026-07-27 19:10:04 -04:00
daniel
7fd812bd34
fix(vst): zone-bleed (3a) — reconcile the Sample-face zone on load so the loaded sample zone is the one first-match resolve plays
2026-07-27 19:09:53 -04:00
daniel
cf93d4dc50
fix(param_slider): 7->5 o'clock arc (50% straight up), seam contract single-sourced, boundary/normDeg/wrap-boundary fixes
2026-07-27 19:09:51 -04:00
daniel
b3c9fad9ba
fix(waveform): 4x-oversampled min/max envelope, columnMinMax homed in peaks, panel routed through shared drawWaveform — one gap-free algorithm on all surfaces
2026-07-27 19:09:50 -04:00
daniel
99f377db28
FA2: param-domain Gate schematic + 8px node min-sep (all nodes grabbable at defaults); cross-mode drag guard; double-clamp px overflow fix
2026-07-27 19:09:47 -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
6c0bb4c204
feat(param_slider): radial KNOB primitive — parameterized 6->4 o clock arc, needle endpoint, vertical-drag value map, circular hit-test (FA4)
2026-07-27 18:25:07 -04:00
daniel
20308c842e
fix(waveform): per-column min/max envelope fill eliminates gaps in steep segments
2026-07-27 18:25:05 -04:00
daniel
d5d1902ea4
FA2: bounded-schematic Gate envelope (15% sustain reserve, in-bounds release) + zero-fade-out grabbable via nearest-node hit-test; all nodes clamp in-canvas
2026-07-27 18:25:03 -04:00
daniel
e2bd4f4351
docs(phase-s): close out S-VIEW-10 — Phase S three-view editor redesign complete
...
Move S-VIEW-10 (velocity-curve editor UI) to COMPLETED; all ten S-VIEW points landed. No open S-VIEW items remain.
2026-07-27 16:11:12 -04:00
daniel
b7cc8d0ca3
Merge pS-w3-velcurve-ui: velocity-curve editor UI (S-VIEW-10) — draggable spline points in Sample + Zone views
2026-07-27 16:05:32 -04:00
daniel
d982d14760
fix(velcurve-ui): caption overlap, add-in-ring data corruption, drag-off warn affordance
2026-07-27 16:05:05 -04:00
daniel
0e8b1b72cf
S-VIEW-10: velocity-curve editor UI — draggable spline box beside the Sample hero + in the Zone panel, all math through the pure velocity_curve module
2026-07-27 15:51:36 -04:00
daniel
c92d82df3a
docs(phase-s): reconcile PLAN/COMPLETED/CLAUDE for S-VIEW Wave 2
...
Move S-VIEW-1..9 to COMPLETED (three-view editor + velocity spline curve v7); F3 settled (full-window Browse modal); S-VIEW-10 (curve editor UI) remains the lone open Phase S item. Add trigger_seam + velocity_curve to the module inventory.
2026-07-27 15:07:57 -04:00
daniel
21c3656bf7
Merge pS-w2-t2-velcurve: velocity->amp transfer curve (velocity_curve spline + zones-payload v7 + Voice::start apply)
2026-07-27 15:00:10 -04:00
daniel
2edb609b65
Merge pS-w2-t1-shell: three-view ReaSampler 9000 editor (S-VIEW-1/2/5/8 + Wave-1 module wiring)
2026-07-27 15:00:04 -04:00
daniel
c2a9f2a814
fix(comments): soften "bit-exact" to "~1e-15 floating-point rounding" in velocity_curve
2026-07-27 14:59:35 -04:00
daniel
026ca90217
vst: curve velocity_curve eval with a monotone cubic Hermite (Fritsch-Carlson) spline
...
True curved response, provably no overshoot outside [0,1]; collinear knots reproduce the exact linear ramp so linear()'s null-response stays bit-exact. Eval-only; v7 wire-format untouched. Adds spline tests.
2026-07-27 14:45:50 -04:00
daniel
8a7dc4b1c6
fix(trigger-seam): thread startFrame into both envelope converters; extract pure triggerPlayLength module + tests
2026-07-27 14:37:05 -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
fcca987454
docs: ME-import places instrument on selected track
...
Update ingest surface (2) + instrument_drop_win entry points in CLAUDE.md
and the Ingest-through-the-bank spec in CONTEXT.md; createTrackWithInstrument
removed.
2026-07-27 14:22:43 -04:00
daniel
3b0c42fe52
Merge ME-import → selected-track placement
...
ME-import adds the new RS9k to the selected track instead of creating a
new track; no selected track refuses gracefully with the sound still
banked. Removes the now-dead createTrackWithInstrument.
2026-07-27 14:18:19 -04:00
daniel
3a95ce61fe
refactor(ingest): ME-import adds RS9k to selected track, not a new track
...
No track is created; no routing changes. No selected track -> bank
import proceeds, instrument placement is refused with a console message
explaining why. createTrackWithInstrument removed (was sole caller).
2026-07-27 14:18:10 -04:00
daniel
a1f9dcf6f8
S-VIEW-9: velocity->amp transfer curve (pure velocity_curve module + zones-payload v7 + Voice::start apply)
...
Default flat y=1 (R10-F1 Option A) replaces the linear velocity/127 at note-on — a deliberate, non-back-compat behavior change; v1-v6 blobs lift to the flat default.
2026-07-27 14:18:01 -04:00
daniel
c12a374b88
Phase S Wave 2: three-view ReaSampler 9000 editor (Sample home / Browse modal / Zone)
...
Retire the flat toggle; Sample-home face wires the Wave-1 envelope overlay + draggable nodes, preview button + velocity knob, Mono/Stereo, key-track. Browse reduced to a confirm/cancel modal; Zone retained with piano-pattern strip. RT-safe off-thread preview-note mailbox added.
2026-07-27 14:17:58 -04:00
daniel
8576832c84
docs: drop-onto-panel is bank-fill only
...
Correct ingest surface (3) in CLAUDE.md (only surface (1) assigns now) and
the drag-and-drop bullet in CONTEXT.md to bank-fill-only behavior.
2026-07-27 14:06:18 -04:00
daniel
b924e82f63
Merge drop-onto-panel bank-fill only
...
Dropping audio onto the bank panel imports to the bank without
force-selecting on any live instance; generation bump retained so open
instances see the new sounds.
2026-07-27 14:02:44 -04:00
daniel
5f7fbad7fb
fix(ingest): drop-onto-panel is bank-fill only
...
Remove both ingestAssignActiveInstance() calls from ingestDroppedFiles.
New samples still land in the bank, bump the generation, and persist —
but the drop no longer force-selects on any live instance. Dedup branch
simplified; stale comments corrected. ingestAssignActiveInstance stays
defined for the main.cpp path.
2026-07-27 14:02:38 -04:00
daniel
203005e6cf
docs(phase-s): reconcile PLAN/COMPLETED/CLAUDE for S-VIEW Wave 1
...
Move S-VIEW-BUG-1 + S-VIEW-SIZE-1 to COMPLETED; annotate S-VIEW-3/4/6/7 as Wave 1 core landed / Wave 2 shell pending; record R10-F1 SETTLED (Option A, flat y=1) into S-VIEW-9.
2026-07-27 13:49:45 -04:00
daniel
c40458fc53
docs: reflect ME-import → new-instrument behavior
...
Update ingest surface (2) + instrument_drop_win entry points in CLAUDE.md;
update the Ingest-through-the-bank spec in CONTEXT.md to shipped behavior.
2026-07-27 13:42:14 -04:00
daniel
188f367ba2
Merge ME-import → new RS9k instrument
...
Repurpose INGEST_IMPORT_MEDIA_EXPLORER to stand up a fresh instrument on
a new track pre-loaded with the imported sound, instead of force-selecting
on the active instance.
2026-07-27 13:39:24 -04:00
daniel
835bddadda
feat(ingest): ME import loads a new instrument on a new track
...
Repurpose INGEST_IMPORT_MEDIA_EXPLORER (id unchanged) to stand up a
fresh ReaSampler 9000 on a new named track pre-loaded with the imported
sound, instead of force-selecting on the active instance. One undo point.
2026-07-27 13:39:18 -04:00
daniel
d38e4eef84
Merge pS-w1-t3-state: persist preview-trigger velocity as ComponentState v6 (S-VIEW-4 core)
2026-07-27 13:39:09 -04:00
daniel
912ce5b320
Merge pS-w1-t2-keytrk: per-zone keyTrack scalar + ratio math in both repitch engines (S-VIEW-6 core)
2026-07-27 13:38:56 -04:00
daniel
2b83447189
Merge pS-w1-t5-drop: fix drop-to-FX hotspot classifier, narrowed to tcp.fx/mcp.fx (S-VIEW-BUG-1)
2026-07-27 13:37:58 -04:00
daniel
e08f7b827c
Merge pS-w1-t6-size: 1080p default window size + min floor (S-VIEW-SIZE-1)
2026-07-27 13:37:43 -04:00
daniel
33e38c69fb
Merge pS-w1-t4-kbd: keyboard_strip isNaturalKey predicate (S-VIEW-7 core)
2026-07-27 13:37:32 -04:00