Commit Graph

  • 57e509c64f Merge pq-w0-audit: Q-W0 pre-restructure audit — 4 track notes + committed code-quality audit (59 findings triaged); docs-only daniel 2026-07-28 17:02:47 -04:00
  • 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 daniel 2026-07-28 17:00:06 -04:00
  • 2dbefb8c01 audit(q-w0-t4): sizing census — 14 oversize files, VST side unowned; propose Q-W2v wave, 8-seam bank_panel, ICaptureBackend is dead daniel 2026-07-28 16:50:47 -04:00
  • ca086f4009 docs(q-w0): T3 env-coupled-constant audit — 7 findings (2 fix-now: gain-ramp step, fade-ceiling frames); persistence surfaces clean daniel 2026-07-28 16:50:38 -04:00
  • dfe6ccbddd docs(q-w0): T2 architecture audit — wire-cursor hardening drift, 5th JSON decoder, 5x readFileBytes, rect-type zoo; 11 triaged findings daniel 2026-07-28 16:43:34 -04:00
  • f0d5d23171 docs(q-w0): T1 DSP audit — 11 triaged findings, SOLA engine sound; stereo splice decorrelation is the headline daniel 2026-07-28 16:43:24 -04:00
  • 363c091308 0.9.9 daniel 2026-07-28 14:26:14 -04:00
  • 18dab9f150 docs(pS-usage): record instance-usage detection — un-prunable guarantee, wire/liveness/fail-safe, deferred identity-persistence follow-up daniel 2026-07-28 14:21:40 -04:00
  • c5f7d0e21f docs: add TODO for persisting VST instance identity so prune reclaims de-referenced captures after reopen daniel 2026-07-28 14:12:55 -04:00
  • 74ab2681ed Merge pS-usage: captures held by live ReaSampler 9000 instances are un-prunable — instances publish usage records (ComponentState v11), prune unions live holds; fail-safe to protect/abort daniel 2026-07-28 14:08:16 -04:00
  • ec83f14738 fix(pS-usage): close delete-ward residuals — remint on corrupt, named abort keys, truncation protect-all, abort->protect-all set daniel 2026-07-28 13:54:10 -04:00
  • a4aeb9dcc8 fix(pS-usage): fail-safe prune protection — in-wire owner nonce + sticky union poison, protect-all on zero identified, abort on unreadable record, rsusage_ prefix daniel 2026-07-28 13:32:14 -04:00
  • 5886ae1456 pS-usage: captures held by live ReaSampler 9000 instances are un-prunable — instances publish usage_<guid> ext-state records (ComponentState v11), prune unions live holds into referenced daniel 2026-07-28 12:56:36 -04:00
  • 0ce30cc885 docs: preview via real MIDI path (PreviewCard retired) + self-contained playback (v10 SampleRefs, bank-free decode, heal removed); fix stale reloadFromBank refs daniel 2026-07-28 12:28:25 -04:00
  • f988ded543 Merge pS-preview: preview via the real MIDI note path (PreviewCard retired) + self-contained playback (ComponentState v10 SampleRefs, bank-free decode, heal/poll-to-play removed) daniel 2026-07-28 12:18:38 -04:00
  • cb89dbf5c4 pS remediation: legacy lift terminates on stale-id proof; displayName in v10 refs; refs-reader range fallbacks; load path keeps owned refs daniel 2026-07-28 12:17:36 -04:00
  • 261a6affa5 self-contained playback — ComponentState v10 SampleRefs (path+intrinsics owned by the instance), reloadInstrument decodes bank-free, heal timer + poll-to-play removed; bank is a browser source daniel 2026-07-28 11:45:10 -04:00
  • 93e28f4ea5 fix(vst): reopen heal without the editor — bounded main-thread retry timer, re-armable first-poll heal, unconditional preview-off consume + Mono/drain preview tests daniel 2026-07-28 10:56:40 -04:00
  • 81c4658711 Preview rides the real note path: mailbox drains into VoiceEngine noteOn/noteOff at the root note; PreviewCard retired; first-poll reopen heal reloads a silent-but-should-be-loaded instrument daniel 2026-07-28 10:30:51 -04:00
  • 6b85df8a8c Merge pS-ga3-tail: Preserve tail wind-down — freeze SOLA writer at source end so the tail + release play clean (no DC-splice chop) daniel 2026-07-28 10:09:42 -04:00
  • 4f7e15390f fix(pitch_shift): re-anchor fadePos_ on freeze so gNew is continuous at the freeze frame; guard left cast; add step-detector + loop-never-freezes regression daniel 2026-07-28 10:09:23 -04:00
  • 917626a287 fix(preserve): GA3 tail wind-down — freeze the SOLA writer at source exhaustion so the tail recycles frozen real content (no DC-splice chop through the final window + release) daniel 2026-07-28 09:50:28 -04:00
  • 1d2da9d456 docs: GA2 fix pass — Preserve ring-prime (gap-free frame-0 onset, no 25ms latency) + bounded-blend takeover declick (supersedes stale (1-amp) gate) daniel 2026-07-28 09:16:13 -04:00
  • a23ee1b000 Merge pS-ga2-clicks: bounded-blend takeover declick (mono retrig + preview + poly steal), soundingNote() gating — click-free voice restarts daniel 2026-07-28 09:10:23 -04:00
  • e0295118de Merge pS-ga2-preserve: prime SOLA rings for gap-free frame-0 onset + real-content tail bound + sub-sample alignment — clean Preserve repitch C1..C8 daniel 2026-07-28 09:10:16 -04:00
  • 3e9f5b3b48 fix(sampler_core): bounded-blend declick (no overshoot), soundingNote() gates cap + legato daniel 2026-07-28 09:10:04 -04:00
  • f7dfaa9f41 fix(preserve): clamp Preserve feed to real-content bound at tail; lock sub-sample refinement with non-integer f0; fix stale onset-latency doc + clamp comment daniel 2026-07-28 09:10:03 -04:00
  • 5d3289f0bc fix(vst): declick rev 2 — difference-seeded ungated takeover ramp (rev-1 (1-amp) gate zeroed it on Trigger/zero-attack); preview card opt-in daniel 2026-07-28 08:49:07 -04:00
  • 2ef3514bc7 fix(preserve): prime SOLA rings with real source (zero-latency, gap-free onset) + sub-sample splice alignment — clean repitch C1..C8 daniel 2026-07-28 08:49:05 -04:00
  • e99bdcf264 docs: record GA DAW-fix pass (Preserve SOLA, voice declick, stereo bus-pin+v9, .vstpreset drop-fx, drag-out, panel toggle); correct stale vst_chunk mechanism daniel 2026-07-28 07:12:07 -04:00
  • 3e3b79d78a Merge pS-ga-preserve: correlation-aligned SOLA splices fix repitched-Preserve garbage; ratio-scaled fade safe past +24st; spectral-purity test daniel 2026-07-28 07:00:32 -04:00
  • 157eb8c624 Merge pS-ga-voicesteal: declick every takeover (mono retrig + poly at-cap steal), gated on envelope complement; over-cap steal proven exactly-one daniel 2026-07-28 07:00:24 -04:00
  • 5056b5fc3b Merge pS-ga-stereo: pin stereo bus (kills dual-mono hard-right pan) + auto-default channel mode from capture (v9) daniel 2026-07-28 07:00:14 -04:00
  • a8d0dcf944 Merge pS-ga-dropfx: inject dropped capture via .vstpreset/TrackFX_SetPreset (fixes blank-on-drop); prefix FX hotspot; UTF-8 temp path daniel 2026-07-28 06:59:41 -04:00
  • d1215069eb Merge pS-ga-dragout: capture mouse at drag-arm so first straight-out drag fires OS drop daniel 2026-07-28 06:59:35 -04:00
  • 37d0923639 Merge pS-ga-paneltoggle: repaint panel mode toggle on Design/Arrange action daniel 2026-07-28 06:59:20 -04:00
  • 39ea6ce7db fix(sampler_core): gate takeover declick by (1-amp) to remove zero-attack +6 dB blip and long-attack notch; clamp seed to +/-1; add zero-attack test daniel 2026-07-28 06:59:05 -04:00
  • 3d0406ef64 test(pitch_shift): tighten purity f0 to 1/196 so revert-of-fadeLen_ fails; add hop guard; clamp fadeLen_ in double before int64 cast daniel 2026-07-28 06:59:04 -04:00
  • 66f2e402b0 fix(instrument_drop_win): UTF-8 temp path, PID collision guard, embed-strip excluded from drop hotspot daniel 2026-07-28 06:37:42 -04:00
  • e435ab1b8f fix(review): dead silenceFlags store removed; channelModeFor extracted + tested; auto-default + drop comments corrected; v9 constant minted daniel 2026-07-28 06:37:39 -04:00
  • 436a685984 fix(pitch_shift): ratio-scale splice fade so +24st up-shifts never read stale data; normalize SOLA correlation by candidate energy; tests bracket 4x/0.5x + unity/latency asserts daniel 2026-07-28 06:37:38 -04:00
  • 056ccd003e fix(voice): declick every takeover of a sounding voice — mono retrig/fallback and poly at-cap steal; same-block double-steal keeps its seed; over-cap repro proves the engine steals exactly one voice per note-on daniel 2026-07-28 06:37:36 -04:00
  • 7e7143a055 fix(bank_panel): repaint footer mode toggle when Design/Arrange action fires daniel 2026-07-28 06:19:32 -04:00
  • 8fc2c8f2e0 fix(bank_panel): capture mouse at drag-arm time so first straight-out drag fires OS drop daniel 2026-07-28 06:19:31 -04:00
  • b4dd6dc9f1 fix(drop-fx): inject via .vstpreset + TrackFX_SetPreset (vst_chunk is REAPER-framed, raw bytes silently no-op); FX hotspot now prefix tcp.fx*/mcp.fx*/fx_* daniel 2026-07-28 06:19:29 -04:00
  • 3e6629a867 fix(vst): pin output bus to stereo (mode is decode-only) killing the hard-right pan; auto-default channel mode from the loaded capture (state v9) daniel 2026-07-28 06:19:28 -04:00
  • 22d7893431 fix(preserve): correlation-aligned splices replace dual-tap OLA — fixed w/2 tap offset anti-phase-cancelled crossfades (beating/partials on repitched sines); spectral-purity test added daniel 2026-07-28 06:19:26 -04:00
  • 104a25f390 docs: FB2 Zone-panel parity landed — S-VIEW-13 to COMPLETED, r11 editor recompose complete (Wave B closed) daniel 2026-07-28 00:14:16 -04:00
  • 24c3172727 Merge pS-fb2-zoneparity: FB2 (R11-F2) Zone-panel parity — one knob-deck + curve-popup grammar across Sample and Zone daniel 2026-07-28 00:10:36 -04:00
  • 40bcf0d56d fix(editor): close curve popup on zone-count change; degenerate-rect guard + comment corrections daniel 2026-07-28 00:09:13 -04:00
  • 682c21509a FB2: Zone panel adopts the r11 knob deck + curve popup (R11-F2 parity) — slider rows and inline curve box retired, zone-authoring affordances kept daniel 2026-07-27 23:58:07 -04:00
  • d272aab0df docs: record FB1 r11 Sample-view recompose + master gain (v8); move S-VIEW-11/12 to COMPLETED; correct stale r11 zero-state-change line daniel 2026-07-27 23:58:05 -04:00
  • a66acb7473 Merge pS-fb1-sampleview: FB1 (r11) Sample-view recompose — knob deck, full-width hero, curve popup, post-mixer master gain (v8) daniel 2026-07-27 23:38:30 -04:00
  • e2c73e30d6 fix(vst): master-gain per-sample ramp (no zipper/click); voice-count commits once on release; minor review items daniel 2026-07-27 23:30:27 -04:00
  • 43155cf320 Phase S FB1 (r11): Sample-view recomposition — knob deck + elastic full-width hero + curve popup w/ right-click delete + post-mixer master gain (ComponentState v8) daniel 2026-07-27 23:08:04 -04:00
  • 7bafb7fe9c docs(claude): describe beta version display by shape, not a hardcoded literal daniel 2026-07-27 23:01:06 -04:00
  • 03ec8d2f96 Merge p10-w3-bump-canary: bump to 0.9.8 + anti-normalization padding canary daniel 2026-07-27 22:59:18 -04:00
  • 247d1034b0 fix(comments): correct canary justification and expand failure guidance in padding tests daniel 2026-07-27 22:59:08 -04:00
  • 3790677097 bump to 0.9.8; add padded-canary build (app_version_padding_tests) daniel 2026-07-27 22:51:16 -04:00
  • 0c06bbad2c Merge p10-w1-t2-drop-action-buttons: remove dead action_buttons module daniel 2026-07-27 22:38:40 -04:00
  • 27b2661ef2 docs: record post-S-VIEW DAW-fix pass + voice-system redesign (parameterized voices, mono, preview card, two-tier panic, v7) daniel 2026-07-27 22:27:33 -04:00
  • 051b347e93 Merge pS-voice: voice-system redesign — user-set polyphony, mono (retrig|legato), isolated preview card, two-tier panic (v7); incorporates FA1 realtime fixes daniel 2026-07-27 22:14:09 -04:00
  • 9241c850c2 Merge pS-appver: decouple app_version test from the hardcoded version literal (bump-robust) daniel 2026-07-27 22:14:02 -04:00
  • 080a7be8ca fix(voice): CC 120 hard-stops voices (incl. Trigger); Mono sizes voices_ to 1; comments corrected daniel 2026-07-27 22:08:56 -04:00
  • cd64be9129 remove dead action_buttons module (superseded by action_bar in Phase L) daniel 2026-07-27 21:46:22 -04:00
  • 502f3c9e30 docs: correct six false archive claims; surface docs/product in CLAUDE.md daniel 2026-07-27 21:56:06 -04:00
  • cc64def2d0 fix(voice): Trigger legato keys on held-stack depth, CC123 allNotesOff clears mono stack, voice-param edits rebuild from decoded PCM (no re-decode), mono sizes 1 shifter ring daniel 2026-07-27 21:54:03 -04:00
  • 7354f471c6 test(app_version): decouple assertions from the hardcoded version literal daniel 2026-07-27 21:53:41 -04:00
  • 15d7bd80c0 docs(plan): archive landed and abandoned work per PLAN.md convention daniel 2026-07-27 21:51:37 -04:00
  • b09f375490 docs: fix swell_resgen.php path and repair citations broken by the CONTEXT split daniel 2026-07-27 21:32:22 -04:00
  • 885b7f29a2 Phase S voices: user-set polyphony, mono stack (retrig|legato), isolated preview card, idle-drain retirement; unity bypass preview-only (v7) daniel 2026-07-27 21:29:30 -04:00
  • e4f4691a0d docs: rewrite README to current state, retire TODO.md, fix stale mpe_model ref daniel 2026-07-27 21:07:19 -04:00
  • 0e7b36eb17 docs(claude): grep CONTEXT.md by phase, don't read it whole; note CONTEXT-ARCHIVE.md daniel 2026-07-27 20:27:00 -04:00
  • 959019bcf5 docs(context): split landed build detail into CONTEXT-ARCHIVE.md daniel 2026-07-27 20:23:19 -04:00
  • d9321eaf3a FA1: unity-Preserve bypass kills preview onset latency; drain-slot reload keeps voices ringing through curve edits; velocity path proven end-to-end daniel 2026-07-27 18:25:01 -04:00
  • 2b8ab4abe4 Merge pS-fa3-waveform: gap-free per-column min/max waveform render (columnMinMax in peaks, shared across panel + editor) daniel 2026-07-27 19:47:49 -04:00
  • 69d5621f51 Merge pS-zonebleed: fix zone-bleed (3a) — Sample-face zone reconcile so the played zone matches the drawn one daniel 2026-07-27 19:47:09 -04:00
  • 6056302752 Merge pS-fa2-envmodel: fully-editable bounded amp envelope nodes (Gate + Trigger) daniel 2026-07-27 19:47:02 -04:00
  • e550234d0c Merge pS-fa4-knob: radial KNOB primitive (7->5 arc, needle, vertical-drag) in param_slider daniel 2026-07-27 19:46:56 -04:00
  • 88c122fcb4 fix(zone-view): Add Zone seeds narrow octave range so new zones survive reconcile daniel 2026-07-27 19:38:03 -04:00
  • 1e645adcef fix(draw_kit): reclaim 4x waveform oversample; relocate waveformColumnCount to component_geometry daniel 2026-07-27 19:37:53 -04:00
  • 9b3a9afb36 docs(claude): condense CLAUDE.md 42k -> 18k chars daniel 2026-07-27 19:10:04 -04:00
  • 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 daniel 2026-07-27 19:09:53 -04:00
  • cf93d4dc50 fix(param_slider): 7->5 o'clock arc (50% straight up), seam contract single-sourced, boundary/normDeg/wrap-boundary fixes daniel 2026-07-27 19:09:51 -04:00
  • b3c9fad9ba fix(waveform): 4x-oversampled min/max envelope, columnMinMax homed in peaks, panel routed through shared drawWaveform — one gap-free algorithm on all surfaces daniel 2026-07-27 19:09:50 -04:00
  • 99f377db28 FA2: param-domain Gate schematic + 8px node min-sep (all nodes grabbable at defaults); cross-mode drag guard; double-clamp px overflow fix daniel 2026-07-27 19:09:47 -04:00
  • a4e33b1c04 docs(s-view): spec the r11 Sample-face recomposition (knob deck, curve popup, full-width hero) for Wave B daniel 2026-07-27 18:25:32 -04:00
  • 6c0bb4c204 feat(param_slider): radial KNOB primitive — parameterized 6->4 o clock arc, needle endpoint, vertical-drag value map, circular hit-test (FA4) daniel 2026-07-27 18:25:07 -04:00
  • 20308c842e fix(waveform): per-column min/max envelope fill eliminates gaps in steep segments daniel 2026-07-27 18:25:05 -04:00
  • 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 daniel 2026-07-27 18:25:03 -04:00
  • e2bd4f4351 docs(phase-s): close out S-VIEW-10 — Phase S three-view editor redesign complete daniel 2026-07-27 16:11:12 -04:00
  • b7cc8d0ca3 Merge pS-w3-velcurve-ui: velocity-curve editor UI (S-VIEW-10) — draggable spline points in Sample + Zone views daniel 2026-07-27 16:05:32 -04:00
  • d982d14760 fix(velcurve-ui): caption overlap, add-in-ring data corruption, drag-off warn affordance daniel 2026-07-27 16:05:05 -04:00
  • 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 daniel 2026-07-27 15:51:36 -04:00
  • c92d82df3a docs(phase-s): reconcile PLAN/COMPLETED/CLAUDE for S-VIEW Wave 2 daniel 2026-07-27 15:07:57 -04:00
  • 21c3656bf7 Merge pS-w2-t2-velcurve: velocity->amp transfer curve (velocity_curve spline + zones-payload v7 + Voice::start apply) daniel 2026-07-27 15:00:10 -04:00
  • 2edb609b65 Merge pS-w2-t1-shell: three-view ReaSampler 9000 editor (S-VIEW-1/2/5/8 + Wave-1 module wiring) daniel 2026-07-27 15:00:04 -04:00
  • c2a9f2a814 fix(comments): soften "bit-exact" to "~1e-15 floating-point rounding" in velocity_curve daniel 2026-07-27 14:59:35 -04:00
  • 026ca90217 vst: curve velocity_curve eval with a monotone cubic Hermite (Fritsch-Carlson) spline daniel 2026-07-27 14:45:50 -04:00
  • 8a7dc4b1c6 fix(trigger-seam): thread startFrame into both envelope converters; extract pure triggerPlayLength module + tests daniel 2026-07-27 14:37:05 -04:00