b8e8bb4c75
docs(todo-1.0): item 15 — one-click in-sampler resample (fourth batch, 2026-07-29); five questions await Daniel
daniel2026-07-29 10:39:35 -04:00
9dd3440b75
docs(phase-q): record Q-W0 close + Q-W1 landing — points moved to COMPLETED.md; skipped riders and bank_book nameKey residual preserved
daniel2026-07-29 09:50:37 -04:00
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.
daniel2026-07-28 21:33:51 -04:00
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
daniel2026-07-28 20:48:56 -04:00
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
daniel2026-07-28 19:59:02 -04:00
88e7765ee5
docs(TODO-1.0): filter envelope follows the mode-driven shape; no open questions await a Daniel decision
daniel2026-07-28 20:09:13 -04:00
32785606d4
docs(TODO-1.0): item 14 — Trigger-mode amp fades replaced by AHD with curves; amp envelope shape follows playback mode
daniel2026-07-28 20:04:59 -04:00
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
daniel2026-07-28 20:00:26 -04:00
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
daniel2026-07-28 18:44:52 -04:00
35f02cece2
docs(TODO-1.0): fold third answer round — spline point ceiling 128, right-click delete; doc fully settled
daniel2026-07-28 19:04:36 -04:00
678274c19b
docs(TODO-1.0): fold second answer round — items 1-2 fully settled, item 3 down to point bounds and popup gesture convergence
daniel2026-07-28 18:59:46 -04:00
c5f7d0e21f
docs: add TODO for persisting VST instance identity so prune reclaims de-referenced captures after reopen
daniel2026-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
daniel2026-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
daniel2026-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
daniel2026-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
daniel2026-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
daniel2026-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)
daniel2026-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
daniel2026-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
daniel2026-07-28 11:45:10 -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
daniel2026-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)
daniel2026-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
daniel2026-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)
daniel2026-07-28 09:50:28 -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
daniel2026-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
daniel2026-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
daniel2026-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
daniel2026-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
daniel2026-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
daniel2026-07-28 06:37:36 -04:00
8fc2c8f2e0
fix(bank_panel): capture mouse at drag-arm time so first straight-out drag fires OS drop
daniel2026-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_*
daniel2026-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)
daniel2026-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
daniel2026-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)
daniel2026-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
daniel2026-07-28 00:10:36 -04:00
40bcf0d56d
fix(editor): close curve popup on zone-count change; degenerate-rect guard + comment corrections
daniel2026-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
daniel2026-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
daniel2026-07-27 23:58:05 -04:00
e2c73e30d6
fix(vst): master-gain per-sample ramp (no zipper/click); voice-count commits once on release; minor review items
daniel2026-07-27 23:30:27 -04:00