Commit Graph

688 Commits

Author SHA1 Message Date
daniel 19b12186ac Q-W2 review follow-ups: anon-namespace TU-private panel helpers, fix stale bank_panel.cpp comments, correct shim-transitivity claim
Wraps ~50 file-local helpers across all eight panel TUs in namespace{} (dissolves the menuAppend default-arg ODR trap); zero behavior change, 60/60 green.
2026-07-29 11:29:10 -04:00
daniel 30a4ffd01b Q-W2: split bank_panel.cpp (3459 LOC) into eight shell/panel TUs — reasampler::panel internals, per-seam public headers, shim retired; zero behavior change, 60/60 green 2026-07-29 11:29:10 -04:00
daniel b5788c82f6 docs(todo-1.0): record second fourth-batch answer round
Item 16 migration settled (adopt first zone); item 15 capture window specced, reset scope ratified; new item 17: provenance/usage consolidation. Nothing awaits Daniel.
2026-07-29 11:18:41 -04:00
daniel d8651fb7a7 docs(todo-1.0): item 15 answer round; item 16 retires zone mapping
Five blocking questions folded; capture-signal popup specced; items 2, 9,
11, 12 carry supersession notes. Sole remaining Daniel-blocker: multi-zone
migration.
2026-07-29 11:03:17 -04:00
daniel b8e8bb4c75 docs(todo-1.0): item 15 — one-click in-sampler resample (fourth batch, 2026-07-29); five questions await Daniel 2026-07-29 10:39:35 -04:00
daniel 9dd3440b75 docs(phase-q): record Q-W0 close + Q-W1 landing — points moved to COMPLETED.md; skipped riders and bank_book nameKey residual preserved 2026-07-29 09:50:37 -04:00
daniel 0ce3f4894a Merge pq-w1-layout: Q-W1 safe opener — core/json + core/wire + readFileBytes dedup (5 JSON decoders, 3 cursor copies deleted); core/shell/app relocation + sub-namespaces; ui::Rect unification; slot_map split; BankIndex→BankModel; 60/60 green 2026-07-29 09:42:27 -04:00
daniel 2d59bbe35d Q-W1 code-review follow-ups: restore 104 trailing newlines, relocate reasampler_uid.h to core/wire, drop ext_keys namespaces shim, add slot_map_tests, golden serialize literals for 4 modules, namespaces.h/pragma-once ordering sweep. 60/60 green. 2026-07-28 21:34:09 -04:00
daniel 847936f813 Q-W1 pt2: core/shell/app relocation + sub-namespaces; one concrete ui::Rect (LTRB fork retired); slot_map split from bank_book; BankIndex→BankModel; 59/59 green 2026-07-28 21:34:09 -04:00
daniel 67a41728f3 Q-W1 pt1: extract core/json (json::Reader/Writer), collapse wire Cursor family into core/wire, shared readFileBytes — five JSON decoders and three cursor copies deleted, byte-identical formats, 59/59 green 2026-07-28 21:34:09 -04:00
daniel 88e7765ee5 docs(TODO-1.0): filter envelope follows the mode-driven shape; no open questions await a Daniel decision 2026-07-28 20:09:13 -04:00
daniel 32785606d4 docs(TODO-1.0): item 14 — Trigger-mode amp fades replaced by AHD with curves; amp envelope shape follows playback mode 2026-07-28 20:04:59 -04:00
daniel b2013f2056 docs(TODO-1.0): close item 8 — Hold is a share of the post-A+D remainder, so the length bound holds by construction; 1:1 overlay scoped to sustain-less envelopes 2026-07-28 20:00:26 -04:00
daniel 587032ffa4 docs(TODO-1.0): fold second-batch answers — pitch AD becomes AHD, VELOCITY deck supersedes MASTER placement, full-height overlays with linked stereo 2026-07-28 19:49:05 -04:00
daniel 113d268553 docs(TODO-1.0): append second batch (items 4-13) — three bugs, loop-point regression plus Gate loop-sustain spec, and seven UI enhancements 2026-07-28 19:31:58 -04:00
daniel 546927ee43 Merge pq-w0-fixes: six Q-W0 audit fix-nows + review riders — linked-lag stereo SOLA w/ follower self-heal, prime playable-span bound, provenance cursor hardening, rate-derived gain ramp + fade ceiling; 56/56 green 2026-07-28 19:29:15 -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 15d293b42f fix(q-w0): six audit fix-nows — linked-lag stereo SOLA, playable-span prime bound, declick dead-state, provenance cursor hardening, rate-derived gain ramp + fade ceiling 2026-07-28 19:28:48 -04:00
daniel 35f02cece2 docs(TODO-1.0): fold third answer round — spline point ceiling 128, right-click delete; doc fully settled 2026-07-28 19:04:36 -04:00
daniel 678274c19b docs(TODO-1.0): fold second answer round — items 1-2 fully settled, item 3 down to point bounds and popup gesture convergence 2026-07-28 18:59:46 -04:00
daniel 78a214b247 docs(phase-q): fold Q-W0 sign-off into PLAN/CONTEXT — all 59 dispositions settled; Q-W2v wave, T4-18 VST placement, ~600 ceiling + structural heuristics, W3 riders (wav_codec, ICaptureBackend, Q-9) 2026-07-28 18:44:48 -04:00
daniel a4571cc074 docs(TODO-1.0): fold in Daniel's answers — radio none-state, knot curve-drag, Filter ranges/label, dual-state Spline EGs 2026-07-28 18:44:41 -04:00
daniel b06b226182 docs: queue TODO-1.0 — post-1.0 specs for envelope curve dials/overlay radio, MM preamp filter stage, and hard-point Spline EGs 2026-07-28 17:58:19 -04:00
daniel 57e509c64f Merge pq-w0-audit: Q-W0 pre-restructure audit — 4 track notes + committed code-quality audit (59 findings triaged); docs-only 2026-07-28 17:02:47 -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 363c091308 0.9.9 2026-07-28 14:26:14 -04:00
daniel 18dab9f150 docs(pS-usage): record instance-usage detection — un-prunable guarantee, wire/liveness/fail-safe, deferred identity-persistence follow-up 2026-07-28 14:21:40 -04:00
daniel c5f7d0e21f docs: add TODO for persisting VST instance identity so prune reclaims de-referenced captures after reopen 2026-07-28 14:12:55 -04:00
daniel 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 2026-07-28 14:08:16 -04:00
daniel ec83f14738 fix(pS-usage): close delete-ward residuals — remint on corrupt, named abort keys, truncation protect-all, abort->protect-all set 2026-07-28 13:54:10 -04:00
daniel 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 2026-07-28 13:32:14 -04:00
daniel 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 2026-07-28 12:56:36 -04:00
daniel 0ce30cc885 docs: preview via real MIDI path (PreviewCard retired) + self-contained playback (v10 SampleRefs, bank-free decode, heal removed); fix stale reloadFromBank refs 2026-07-28 12:28:25 -04:00
daniel 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) 2026-07-28 12:18:38 -04:00
daniel cb89dbf5c4 pS remediation: legacy lift terminates on stale-id proof; displayName in v10 refs; refs-reader range fallbacks; load path keeps owned refs 2026-07-28 12:17:36 -04:00
daniel 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 2026-07-28 11:45:10 -04:00
daniel 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 2026-07-28 10:56:40 -04:00
daniel 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 2026-07-28 10:30:51 -04:00
daniel 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) 2026-07-28 10:09:42 -04:00
daniel 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 2026-07-28 10:09:23 -04:00
daniel 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) 2026-07-28 09:50:28 -04:00
daniel 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) 2026-07-28 09:16:13 -04:00
daniel a23ee1b000 Merge pS-ga2-clicks: bounded-blend takeover declick (mono retrig + preview + poly steal), soundingNote() gating — click-free voice restarts 2026-07-28 09:10:23 -04:00
daniel 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 2026-07-28 09:10:16 -04:00
daniel 3e9f5b3b48 fix(sampler_core): bounded-blend declick (no overshoot), soundingNote() gates cap + legato
Replaces frozen-difference declick with bounded blend (out*(1-w)+ref*w, bounded by max(|ref|,|out|)). soundingNote() gates activePreserveVoices and mono-Legato retune away from ramp-only past-end voices. Magnitude-bound test asserts |v|<=1 across the ramp.
2026-07-28 09:10:04 -04:00
daniel 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 2026-07-28 09:10:03 -04:00