daniel
3baf4ee50b
Γ-W1-T2: the master bus — a true-peak limiter whose ceiling is a theorem, the meter's published half, and the plugin's first PDC report
2026-08-02 13:50:13 -04:00
daniel
3eb72d01c4
One taper, one modifier law: extract param_taper, raise the stage ceiling to 10 s, and make the AHDSR schematic axis the taper itself
2026-08-02 13:47:19 -04:00
daniel
25390d5253
Prove every ext-state write by reading the key back, so no guard is constant-true
...
SetProjExtState's return describes the whole extname. The persist and the instrument's publish now re-read their key; both refusals can finally fire.
2026-08-02 13:14:49 -04:00
daniel
0afb885987
Make a bake's Banked landing reachable only through the persist upgrade
...
The dedup path claimed it directly, so a key could be answered Ok pointing at an entry a failed persist never wrote. Write-back is now guarded and three-valued, and landing one request split out of the scan pass.
2026-08-02 12:35:06 -04:00
daniel
6cabbd0dd4
Fix the bake scan report's unsound absence-as-signal claim
...
Gate the summary on any unanswered key and on SetProjExtState's return, print one line per scanned key, and make the undo block stack RAII.
2026-08-02 08:34:59 -04:00
daniel
7f3b00a646
fix: bake-answer messages stop asserting causes the classifier can't see
...
Rewords Cleared/Unanswered/ForeignRequest to name only observed facts and every live hypothesis instead of picking a winner; adds a guarded answeredOutcome accessor against a future unhandled BakeAnswerKind; folds an unreachable BakeScanKey/Context test state; fixes generation-stamp timing.
2026-08-02 06:57:08 -04:00
daniel
962ab64ef0
bake: name the five ways the extension can fail to answer, and move the landing verdict into a pure, tab-provable classifier
...
A no-answer stays a failure; it now says whether the extension never ran the landing, answered a stale generation, spoke a wire this build cannot read, cleared the request, or refused it.
2026-08-02 06:38:04 -04:00
daniel
19aeb92775
Bake window derives itself: %-knob fold, declick pad, Gate held to exhaustion, preview velocity; Hold is the one knob a loop needs
2026-08-01 20:26:04 -04:00
daniel
39c2d1cdb4
Ξ-W2-T1 remediation: print master gain into the bake, derive the window from the dialed sound, reset play mode to Trigger
2026-08-01 17:05:28 -04:00
daniel
60308a3655
Ξ-W2-T1: the resample bake chain — instrument renders, extension banks, one click re-points and resets
2026-08-01 16:26:28 -04:00
daniel
2e09776342
fix: stroke arcs and splines analytically — opaque core, angle-independent weight
...
LICE_Arc never reaches opacity and ThickFLine's width is minor-axis. One
distance-to-polyline coverage mask, blended once, replaces both.
2026-08-01 13:18:21 -04:00
daniel
7f74b11dce
feat: legible ReaSampler 9000 editor — bigger knobs, ms time constants, per-ring double-click reset, and an antialiased draw pass
2026-08-01 09:16:30 -04:00
daniel
e44bd42dd9
instrument: spline EGs — hard points on the one shared spline, a drawn contour per envelope beside its staged state, payload v13
2026-07-31 21:33:59 -04:00
daniel
bbc7dc70bb
instrument: snap live params onto a fresh voice, roll a live drag back on capture loss, serialize the seqlock's two writers
2026-07-30 21:39:56 -04:00
daniel
1dade0bfcf
instrument: deliver continuous playback params live to sounding voices via a seqlock block, holding normalized stage position across time edits
2026-07-30 21:03:05 -04:00
daniel
67215509cb
feat: run the per-voice filter between the pitch and amp stages, with its own deck
...
Params ride the one parameter set; payload v8 -> v9, off by default.
Deck composition moves to a pure deck_groups module in pitch -> filter -> amp order.
2026-07-30 15:26:14 -04:00
daniel
ae23ee0882
Rebuild the chrome band: full-width piano strip with uniform key widths, note tooltips, one toolbar font
2026-07-30 11:03:41 -04:00
daniel
e304f2b031
Fix embed use-after-free, restore golden fixture + refs tests, drop dead note_entry
2026-07-30 08:01:22 -04:00
daniel
8d4ccbf841
Retire the zone system: one capture = one parameter set, and re-seam the engine and Sample face into bands
2026-07-30 07:15:54 -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