daniel
e0b4ec2e21
Tighten RSBK package-format validation for review remediation
...
Reject NUL/control bytes and Windows-hostile names in entry names, relax
the over-broad ".." substring ban to component-only, close the
trailing-garbage gap on empty manifests, and relocate the package
CMake subdirectory to its ladder home.
2026-08-02 17:19:29 -04:00
daniel
043558a54d
Land src/core/package: the pure RSBK container — format ladder, JSON manifest, framing/layout codec
...
Two-integer ladder (formatVersion/minReaderVersion), bare-name-only entries
validated on encode and decode, prefix decode that proves exact file size
without ever reading a payload.
2026-08-02 17:19:29 -04:00
daniel
1fd38bbd57
Bound the automation hold to the window the model has not caught up on, and make that authority model stated, enforced and tested
2026-08-02 17:16:02 -04:00
daniel
09a9ef838f
1.4.003 (Θ/Ξ/Ψ/Ρ)
2026-08-02 17:14:49 -04:00
daniel
ec95aac274
Merge the settled bounds channel: the time selection is the only window REAPER is handed, and the experiment that proved it is gone
2026-08-02 17:09:46 -04:00
daniel
4c7e0507a1
Fix vacuous bounds test and stale/circular comments from the settle
...
Replace the self-comparing render-window loop with a genuinely discriminating
floor-vs-exact check; correct two stale claims; mark the Auto/Manual floor-parity
premise as unverified; drop the STARTPOS/ENDPOS comment's circular justification.
2026-08-02 17:08:11 -04:00
daniel
8331df2e91
Settle the render window on the time selection and delete the experiment that proved it
...
The millisecond floor lives in the custom-bounds field, not the engine, so
RENDER_BOUNDSFLAG=2 is now the only bounds mode: the two-position type, the
console verdict and the STARTPOS/ENDPOS drift probe all go. capture.cpp 697 -> 622.
2026-08-02 16:55:12 -04:00
daniel
d85e50c143
Merge render-bounds channel experiment: hand the window over on a switchable channel, and print a verdict that is proof only when no floored model fits
2026-08-02 16:23:51 -04:00
daniel
de5654fb6f
Service both VST3 parameter channels, and promote pitch key-track and Trigger length so all 44 ids issue
...
The SDK's own single-component sample drains inputParameterChanges in
process() and implements setParamNormalized; automation was reading the
GUI channel alone. The audio thread now patches a block it solely owns.
2026-08-02 16:22:17 -04:00
daniel
bcdf97d6c4
Fix render-bounds EXACT verdict: enumerate floored models instead of trusting grid membership
...
Grid-ness of an edge was a proxy for "no floor could explain this count," not
the test itself — equal remainders on both edges cancel under a full floor. Now
checks all three floored models directly and corrects the SHORT/LONG
floor-signature docs.
2026-08-02 16:21:46 -04:00
daniel
5f971e60cd
Close three critical review findings on the render-bounds-channel verdict
...
Verdict can no longer print a false EXACT on an on-grid end, no longer names a
bounds channel a content-derived render never consulted, and the grid-align doc
premise is corrected without implementing it.
2026-08-02 15:56:57 -04:00
daniel
bfaa0f2614
Report the instrument's automatable parameters to the host under a frozen id table, in signal-flow order, with real units
...
42 of 44 ids issued: pitch key-track and Trigger length stay reserved
pending a live path. Master gain reclassified Live — it never reloaded.
2026-08-02 15:14:16 -04:00
daniel
51b13304ee
docs: retire Phase Rho from the plan, record it as landed
2026-08-02 15:04:19 -04:00
daniel
b400384a4f
Merge Phase Rho: render in place, a track's output to a new sibling with the source parked on the bench
2026-08-02 14:55:11 -04:00
daniel
7c43e55435
docs: make render_bounds_gate bullet destination-aware
...
Phase P split Bank-move vs ProjectMedia-leave-in-place behavior in render_bounds_gate.h but missed updating this CLAUDE.md bullet.
2026-08-02 14:54:58 -04:00
daniel
d7e5c59547
Remediate Phase P render-in-place review findings
...
Fix the ProjectMedia refusal path's false bank claims and file relocation, an unreachable-undo idiom, and eight comment/doc accuracy issues.
2026-08-02 14:51:55 -04:00
daniel
5c0f5f1591
Render in place: a track's output to a new sibling, source to the bench
2026-08-02 14:47:59 -04:00
daniel
a0fd931dcb
Merge render-bounds diagnostics: prove the window at the boundary it crosses, on every tail mode
2026-08-02 14:47:19 -04:00
daniel
0ab4673887
Fix eight review findings on the render-bounds diagnostics
...
Corrects a false comment example, fixes two tests that couldn't detect their
own regressions, adds two more read-back checkpoints around Main_OnCommand so
a drift report self-locates, guards a spurious zero-vs-zero coincidence match,
and softens two sentences that overclaimed cause or defect.
2026-08-02 14:45:42 -04:00
daniel
292d14d14c
Prove the render bounds at the boundary they cross, and name a short render whose count is exactly a millisecond-floored window
...
No truncation exists on our side of that boundary, so the read-back is the
only evidence available for whether REAPER kept the window — and it fires on
every tail mode, where only None was ever judged.
2026-08-02 14:28:03 -04:00
daniel
c7afa3a80f
docs: collapse Phase Gamma Wave 3 to its landed record, open bake-prints-limiter
2026-08-02 14:06:38 -04:00
daniel
e87d044042
docs: record Phase Gamma Wave 3's two landed tracks in COMPLETED
2026-08-02 14:06:38 -04:00
daniel
5236c58838
Merge Γ-W3-T1: two categorical deck rows and a double-height MASTER bus deck, an exact filter tie-line at a 1028 row block, and the instrument reload decoupled from VST3 activation
2026-08-02 14:06:38 -04:00
daniel
7c473bce73
Merge Γ-W3-T2: the bake's reset list verified complete by construction, and the limiter's exclusion from the printed master stage recorded
2026-08-02 14:06:38 -04:00
daniel
da14509ab5
Restore the bank fold and usage publish to the resume path, guard setActive against repeats, and make the meter fold's bound literal
...
The resume also hands back to a full reload when the fold moves the loaded capture's decode source, so the refs table and the audio cannot skew.
2026-08-02 14:06:37 -04:00
daniel
5c6525fb91
Decouple the instrument reload from VST3 activation, and make the master meter's accumulate exact
2026-08-02 14:02:26 -04:00
daniel
4b0b03d8d5
Fix stale post-widen deck-reflow figures (90/144/1190px) across docs and tests, and split test_deck_groups.cpp's width-budget fixtures into a new file.
2026-08-02 13:59:35 -04:00
daniel
b956fe0d5a
Commit the limiter's audible state on the click and defer only the host's latency restart
...
setInstrumentParams now arms a sticky pending restart that flushLatencyRestart drains from the sync tick; setState and the bake's adopt flush at their own tails.
2026-08-02 13:59:34 -04:00
daniel
41876674e4
Fix deck-UI review findings: right-anchor MASTER's meter column, correct stale/overclaiming comments, split test_deck_groups.cpp on its commit-tier/overlay seam, and pin two width-ceiling assertions.
2026-08-02 13:56:16 -04:00
daniel
df10ddacc2
Widen the deck row block to 1028 so the filter tie-line is exact, and accumulate the meter's block peaks instead of sampling one in 47
2026-08-02 13:56:15 -04:00
daniel
0627398bbb
Reflow the deck into two categorical rows plus a double-height MASTER bus deck
...
Row membership is now the group's own property, not a wrap outcome. FILTER's Band|Notch moves to its caption slack, which is what makes the sound row fit. MASTER gains the limiter toggle, the output meter and the GR lamp.
2026-08-02 13:52:33 -04:00
daniel
f60c05c042
docs: collapse Phase Gamma Wave 2 to its landed record, and correct five spec claims the implementation disproved
2026-08-02 13:52:32 -04:00
daniel
1490c25250
Close Γ-W3-T2 review remediation: widen the bake-reset test's per-parameter coverage, correct four overclaiming comments, state the stage-time ceiling's disposition, and fix a missing include
...
Dials and asserts pitch-env/filter-env/trigEnv fields the sweep previously skipped in both fixtures; no reset behavior changed.
2026-08-02 13:52:32 -04:00
daniel
bf7840020e
docs: record Phase Gamma Wave 2's two landed tracks in COMPLETED
2026-08-02 13:52:32 -04:00
daniel
e2981e83ee
Bake reset: assert the limiter and bake Hold land neutral, prove the loop returns parked, and baseline the render's identity path
...
resetAfterBake is unchanged — every value already resets by construction. The render prints master gain but not the limiter, so §3.4's rationale is wrong; the invariant is corrected.
2026-08-02 13:52:32 -04:00
daniel
782f50c859
Merge Γ-W2-T2: an explicit loop enable, four named marks with grabbable caps, and the crossfade painted where it is heard
2026-08-02 13:52:32 -04:00
daniel
d4acb3feb5
Merge Γ-W2-T1: Rate and Pitch compound into one read increment, on a three-state commit predicate and payload v16
2026-08-02 13:52:32 -04:00
daniel
1b4d0e67b7
Loop-crossfade-ux review fixes: parked-drag no longer fakes LOOP OFF, waveform label contrast fixed, hover memoizes its bank read
...
Also corrects the cap-area, em-dash, glyph-overhang and heuristic-comment findings noted in review.
2026-08-02 13:52:32 -04:00
daniel
56bf26d8b6
docs: collapse Phase Gamma Wave 1 to its landed record, and correct T7's superseded status
2026-08-02 13:52:32 -04:00
daniel
a7c3c7a828
Loop: an explicit enable, four named marks with grabbable caps, and the crossfade painted where it is actually heard
...
hasLoop becomes user-owned with the gestures as shortcuts onto it; no format change. START uses overlay/trace, not accent/primary, which is the waveform's own fill.
2026-08-02 13:52:32 -04:00
daniel
35ab59d7f9
docs: record Phase Gamma Wave 1's seven landed tracks in COMPLETED, including T6 which never had a plan entry
2026-08-02 13:52:32 -04:00
daniel
fefd169d5b
Merge Γ-W1-T7 re-review closeout: the cadence math follows the splice jump, and the collapse band is measured rather than assumed
2026-08-02 13:52:32 -04:00
daniel
cbe2369037
Bake window: derive it from the rate the voice actually reads at, so a dialled Rate or downward Pitch no longer truncates the file
2026-08-02 13:52:31 -04:00
daniel
ef59265e7a
Merge Γ-W1-T7 detect findings: the agreement denominator counts probes that carried signal, so an overlapping straddle can no longer turn a two-and-two split into an accept
2026-08-02 13:52:31 -04:00
daniel
f1168e16eb
Close Γ-W1-T7 re-review: pitch-sync cadence math, floor-model regression check, evidence-count fix, one-home comments
...
New cadence-collapse-band test at P=1470 shows PSOLA eliminates the corner rather than regressing it (18.52% -> 0.00%).
2026-08-02 13:52:31 -04:00
daniel
248f2f3842
PITCH/RATE deck: Rate and Pitch knobs compounded into one read increment, on a three-state commit predicate and payload v16
2026-08-02 13:52:31 -04:00
daniel
d35a55ec8e
docs: correct the Gamma-W1 track count and table, and name T7 as a Rate prerequisite
2026-08-02 13:52:31 -04:00
daniel
91bd6f51a2
Period detection: silence is not dissent but an absent period is — the agreement denominator is the probes that carried signal
2026-08-02 13:52:31 -04:00
daniel
cc4967d21d
docs: drop the findings count from T7's open-questions bullet, it drifts as remediation lands
2026-08-02 13:52:31 -04:00
daniel
3e4ba628c3
docs: record Gamma-W1-T7 in PLAN.md, the track that landed without an entry
2026-08-02 13:52:31 -04:00