daniel
12ffe377e5
Cut core/capture and core/version comment bloat ~45% (comments only, zero code change)
2026-07-29 20:49:23 -04:00
daniel
65ca1e1f9d
Cut core/model, reclaim, json, util comment bloat ~26% (comments only, zero code change)
2026-07-29 20:49:06 -04:00
daniel
3d3415f943
Cut core/ui and core/audio comment bloat ~60% (comments only, zero code change)
2026-07-29 20:49:02 -04:00
daniel
54f5f24506
Cut shell/capture comment bloat ~33% (comments only, zero code change)
2026-07-29 20:48:59 -04:00
daniel
cc36dd59c7
Cut shell/panel comment bloat ~47% (comments only, zero code change)
2026-07-29 20:48:56 -04:00
daniel
d4d29146c7
Cut shell/instrument comment bloat ~34% (comments only, zero code change)
2026-07-29 20:48:43 -04:00
daniel
ccd9968be1
Cut core/instrument/ui comment bloat ~49% (comments only, zero code change)
2026-07-29 20:48:39 -04:00
daniel
354192ae27
Cut core/instrument/map comment bloat ~30% (comments only, zero code change)
2026-07-29 20:48:35 -04:00
daniel
3599d97836
Cut core/instrument/engine comment bloat ~33% (comments only, zero code change)
2026-07-29 20:48:32 -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
cd12b97631
Q-W6 review follow-ups: drop stale wav_trim clause, fix stale include comment, idempotent action-table clear, reflow ragged comment, align session.h trailing comments
2026-07-29 13:51:35 -04:00
daniel
f3be4d8cce
Q-W6: registration table (OCP) in main.cpp; bank verbs -> shell/bank_ops(Session&); persist.h + wav_trim + namespaces.h shims deleted; 61/61
...
capture.h realtime seam split to capture_realtime_shell.h; GetProjExtState grow-loop rehomed to core/wire/ext_state_read; stale persist.cpp/bank_panel.cpp comment refs fixed; CLAUDE.md persist/bank_book/actions bullets updated. Command-id suffixes, display phrases, and undo labels byte-identical.
2026-07-29 13:40:09 -04:00
daniel
0c39a716a5
docs: scope deletion-authority wording to bank folder + guard growing-read NUL terminator
2026-07-29 13:06:38 -04:00
daniel
75aa93f913
Q-W5: persist → session/ext_state_io/prune_fs (deletion authority concentrated); one GetProjExtState grow-loop in bridge_marshal (T2-04, ×3 rewired); bank_book JSON codec → bank_book_json via private static nameKey; persist.h stays umbrella. 61/61 green.
2026-07-29 13:06:38 -04:00
daniel
4f587258b2
fix: guard persistBankOp/persistBook against a null session; rename promptText to promptBankName
2026-07-29 13:06:12 -04:00
daniel
430e117620
Q-W4: split actions.cpp into design_view_actions/bank_actions/prune_action + shared action_registry; bank verbs deduped into promptless bankOp* inner verbs in panel_bank_ops (one mutation home, two UX skins); command-id strings byte-identical; actions.h shim carrier retired
2026-07-29 12:56:02 -04:00
daniel
6108673c84
Q-W3 rebase fix: hoisted capture TUs include the Q-W2 panel seam headers (panel_bank_ops/panel_input) instead of the deleted bank_panel.h
2026-07-29 11:36:32 -04:00
daniel
8bc5aa1257
Q-W3 review follow-ups: golden hash literal test, CLAUDE.md wav_codec bullet, dead RecordedCapture field comment, makeUniqueTag residual note
2026-07-29 11:33:28 -04:00
daniel
09f7173db2
Q-W3: main.cpp → pointers+entry+dispatch via 4 capture hoists; one pure wav_codec RIFF owner; ICaptureBackend deleted; capture_realtime rename + finalize split; shared stampCaptureSample; makeUniqueTag gains monotonic counter (fixes same-second batch collisions). 60/60 green.
2026-07-29 11:33:28 -04:00
daniel
f0f91f7698
Q-W2v review follow-ups: golden full-blob fixture test, dead-local cleanup, bool-guard static_assert, explicit VelocityCurve qualification
2026-07-29 11:29:36 -04:00
daniel
ea86f540b8
Q-W2v: split VST god-modules — editor 8 face-axis TUs (+pure layout hoist), processor 3 TUs, component_state_io codec split (extension drops the voice engine), zone_params.h, core/wire putLE; formats frozen, 61/61 green
2026-07-29 11:29:36 -04:00
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
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
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
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
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
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
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
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
daniel
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
2026-07-28 08:49:07 -04:00
daniel
2ef3514bc7
fix(preserve): prime SOLA rings with real source (zero-latency, gap-free onset) + sub-sample splice alignment — clean repitch C1..C8
2026-07-28 08:49:05 -04:00
daniel
3e3b79d78a
Merge pS-ga-preserve: correlation-aligned SOLA splices fix repitched-Preserve garbage; ratio-scaled fade safe past +24st; spectral-purity test
2026-07-28 07:00:32 -04:00
daniel
157eb8c624
Merge pS-ga-voicesteal: declick every takeover (mono retrig + poly at-cap steal), gated on envelope complement; over-cap steal proven exactly-one
2026-07-28 07:00:24 -04:00
daniel
5056b5fc3b
Merge pS-ga-stereo: pin stereo bus (kills dual-mono hard-right pan) + auto-default channel mode from capture (v9)
2026-07-28 07:00:14 -04:00
daniel
a8d0dcf944
Merge pS-ga-dropfx: inject dropped capture via .vstpreset/TrackFX_SetPreset (fixes blank-on-drop); prefix FX hotspot; UTF-8 temp path
2026-07-28 06:59:41 -04:00
daniel
d1215069eb
Merge pS-ga-dragout: capture mouse at drag-arm so first straight-out drag fires OS drop
2026-07-28 06:59:35 -04:00
daniel
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
2026-07-28 06:59:05 -04:00
daniel
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
2026-07-28 06:59:04 -04:00
daniel
66f2e402b0
fix(instrument_drop_win): UTF-8 temp path, PID collision guard, embed-strip excluded from drop hotspot
2026-07-28 06:37:42 -04:00