daniel
573e878cbd
Release 1.4.0 hygiene: license, version bump, drop scratch DSP
...
Add AGPL v3 LICENSE, bump version to 1.4.0, remove unreferenced non-compiling temp_cortex/ limiter scratch files, and extend .gitignore for .idea/, AGENTS.md, and cmake-build-* dirs.
2026-08-02 04:04:17 -04:00
daniel
194c2392cf
Merge Phase Ψ — the extension trust pass: exact bounds, disjoint solo surfaces, reachable actions, honest drops, real names, true mono
2026-08-01 23:40:32 -04:00
daniel
a4aeb4f6ab
Merge dev into phase-psi: take Ξ-W3 before Ψ lands
...
# Conflicts:
# docs/COMPLETED.md
# docs/TODO.md
2026-08-01 23:39:24 -04:00
daniel
0f870b1337
docs: collapse Phase Ψ's landed track specs, and record Ψ-W3 — the wave a review finding opened
2026-08-01 23:32:25 -04:00
daniel
a3a9c91256
docs: record Phase Ψ's seven landed tracks, and that none of them is DAW-verified yet
2026-08-01 23:22:06 -04:00
daniel
a21a6176e8
Merge Ψ-W3: refuse every multi-track selected-tracks render, both scopes
2026-08-01 23:01:56 -04:00
daniel
2a9ab65944
Ψ-W3 remediation: fix the verify doc's wrong render source, add missing content checks, soften unverified claims
...
Corrected the Render-dialog source name the refusal's evidence depends on, added a by-ear content check and a file-size channel proxy, and stopped two comments from overclaiming.
2026-08-01 23:01:50 -04:00
daniel
f69c4bf6bf
Refuse every multi-track selected-tracks render, both scopes; make a failed mono collapse observable
2026-08-01 22:40:54 -04:00
daniel
6e6f4a6a15
Merge Ψ-W2-T2: a bit-identical capture collapses to one lossless mono channel
...
# Conflicts:
# src/shell/capture/CLAUDE.md
# src/shell/capture/capture.cpp
# src/shell/capture/capture.h
2026-08-01 22:23:06 -04:00
daniel
91f3ffb09e
Merge Ψ-W2-T1: captures named after their source track, surfaced on the panel card
2026-08-01 22:16:20 -04:00
daniel
8b191e3379
Ψ-W2-T2 remediation: atomic temp+rename collapse write, honest unknown-channel fallback, [verify — DAW] markers, corrected+filed bake-collapse deferral, observable collapse message, quiet-NaN test
2026-08-01 22:08:39 -04:00
daniel
0feb32d59b
Ψ-W2-T1 remediation: scrim the card name over the waveform, hedge two SDK claims, fix a UTF-8-truncation empty-label bug, file the legibility DAW deferral
2026-08-01 22:08:35 -04:00
daniel
4fa3c1dd15
Ψ-W2-T2: collapse a capture whose channels are bit-identical to one lossless mono channel, index value measured off the landed file
2026-08-01 21:46:55 -04:00
daniel
3278b4eced
Name captures after their source track: label and filename both, on every interactive mint site, and show the name on the panel card
2026-08-01 21:46:53 -04:00
daniel
4bdbbe0517
docs: close Phase Ξ — the popup abandoned by ruling, the bake window derives itself, and Γ's rung ladder shifts to v15
2026-08-01 21:44:05 -04:00
daniel
178cca3c25
Merge Ξ-W3-T1: the bake window derives itself — Hold is the one knob a sustain loop needs, and three truncations are gone
2026-08-01 21:34:10 -04:00
daniel
eb6093e085
Close derived-bake-window review findings: NaN-guard remaining wire doubles, pin Trigger-span agreement, retire dead quantizer
...
Guards params_payload.cpp's filter-tail seconds and both keyTrack sites against NaN; pins Voice::start's Trigger-span formula against trigger_seam; retires unused shortestDivisionAtLeast.
2026-08-01 21:32:05 -04:00
daniel
09d64c9f46
Merge Ψ-W1-T1: a ranged item capture renders the window, with children and receives silenced for it
...
# Conflicts:
# docs/TODO.md
# src/app/CMakeLists.txt
2026-08-01 21:25:37 -04:00
daniel
a0220e8c57
Ψ-W1-T1 second-round remediation: ±1-frame bounds tolerance, self-cleanup a refused render, hedge two unverified render-source inferences
...
Loosens the exact-bounds gate against REAPER's edge rounding; deletes the bytes a BoundsMismatch refusal writes, per prune_fs's self-cleanup carve-out.
2026-08-01 21:18:03 -04:00
daniel
65f6070348
Bake window: derived note lengths carry exact durations, not ladder rungs — a long take is no longer cut at 384 beats
...
Hold keeps its picker. Also: one home for the %-fold, duration-ordered Hold travel, and a corrupt tail degrades to absent rather than fabricating one.
2026-08-01 21:10:38 -04:00
daniel
7dc80e7a4f
capture: refuse the multi-track ranged item render, silence the track's children and receives for it, and gate every exact-bounds capture on its frame count
2026-08-01 20:58:33 -04:00
daniel
a0f9a23711
Merge Ψ-W1-T4: resolve drop targets per move, not once
...
# Conflicts:
# src/shell/actions/CLAUDE.md
2026-08-01 20:57:55 -04:00
daniel
1044f5418f
Merge Ψ-W1-T3: publish the Media Explorer import into the Media Explorer action section as well as Main
2026-08-01 20:37:30 -04:00
daniel
148d8a9e06
Merge Ψ-W1-T2: disjoint per-mode solo surfaces and a playback-gated mode switch
2026-08-01 20:37:24 -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
9d10f151da
Ψ-W1-T4 remediation: gate silent arrange drops, pin surface totality, hedge unverified SDK claims, close comment/exception-safety minors
2026-08-01 20:13:17 -04:00
daniel
d589b99705
Ψ-W1-T3 review remediation: soften the double-fire claim to unspecified-by-SDK, mark the unload mirror [verify — DAW], fix stale comment, drop redundant assertions, dedupe hook-partitioning comments, drop what-comment; file the action_registry test-seam deferral.
2026-08-01 20:13:13 -04:00
daniel
f2cdf676f3
Ψ-W1-T2 review remediation: solo restore drops on visible-in-target, not parked; N-mode segments read dead when unroutable
...
Fixes a hidden-parent solo replay that could silence the mix. Also closes the N-mode segment silent no-op, amends the invariant comment, trims view.cpp under 600 lines, hedges two SDK inferences, drops a dead null-check.
2026-08-01 20:13:10 -04:00
daniel
fe3ac79ab5
Ψ-W1-T4: resolve drop targets per move, not once — every surface gets a defined outcome, a cue, and no silent no-op
2026-08-01 19:43:37 -04:00
daniel
72b870459c
Publish the Media Explorer import into REAPER's Media Explorer action section as well as Main — custom_action + hookcommand2, second forever-stable id, one handler.
2026-08-01 19:43:27 -04:00
daniel
9c234c2e6b
Ψ-W1-T2: disjoint per-mode solo surfaces and a playback-gated mode switch
...
Solo is cached, cleared and replayed per mode on a real switch only; the switch is refused visibly while the transport runs. The footer segment now routes through the activate actions, so a panel switch finally persists.
2026-08-01 19:43:18 -04:00
daniel
5e3ea6c851
capture: render a ranged item capture time-bounded — the selected-items source can't narrow a window, only a full-extent one uses it
...
sourceModeForScope now takes the item extent vs. the requested window. Full-extent item captures and the batch keep the old path unchanged.
2026-08-01 19:43:06 -04:00
daniel
d3894dae6d
test: audit the derived bake window end to end — two truncations pinned, Gate's missing hold length demonstrated
2026-08-01 19:38:28 -04:00
daniel
8bf6841f7b
docs: spec Phase Ψ — the extension trust pass, seven items across two waves, six tracks, three scheduled invariant amendments
2026-08-01 19:01:01 -04:00
daniel
0a7778b396
docs: close Γ-F7 to signal-flow order and spec real units at the host boundary
...
The 44-id table stated in full. Adds the plain-value layer, a per-category
unit/precision table, the one-formatter invariant, a stepCount sweep, and the
filter read-side resolution.
2026-08-01 18:18:09 -04:00
daniel
9f17df1420
docs: record Ξ-W2-T1, the resample bake chain, and file its two deferrals
2026-08-01 18:11:46 -04:00
daniel
7ecb3aa470
Merge Ξ-W2-T1: the resample bake chain — the instrument renders the dialed sound, the extension banks it, one click re-points and resets
2026-08-01 18:05:06 -04:00
daniel
2fa55658c1
docs: schedule VST3 parameters into Phase Γ
...
Automation ships as Γ-W4; the stage ceiling goes to 10 s in W1-T1 ahead of the
one-way door; a new Γ-W3-T2 corrects Ξ's bake reset list. Four waves, ten tracks.
Opens Γ-F7 on parameter order.
2026-08-01 17:26:18 -04:00
daniel
a09e45fc1d
Ξ-W2-T1 re-review cleanup: soften ordering claim, bound bake guard fields, dedup gain/play-mode rationale, quiet foreign WrongProject noise
2026-08-01 17:23:00 -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
256216d670
docs: close Γ-F6 and resequence Phase Γ into three waves
...
Dynamic latency ships as ruled; the restart cost is re-attributed to our own
setActive and filed in TODO. The reflow splits canvas (W1-T4) from arrangement
(W3-T1); preserve-time-stretch moves to W1-T5.
2026-08-01 16:51:04 -04:00
daniel
eb777f55e1
docs: spec Phase Γ — the instrument's control surface
...
Two-row deck reflow (sound/contour), double-height MASTER with limiter and
meter, PITCH/RATE deck, unit-driven knob law, contour-trace fix, and a
re-approached loop/crossfade UX. Folds rulings Γ-F1..Γ-F5; opens Γ-F6.
2026-08-01 16:29:32 -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
6c982cd617
docs: record Θ-W7, the arc-and-spline antialiasing fix, and file the scaled-fallback deferral
2026-08-01 15:18:59 -04:00
daniel
806a3037a3
Merge Θ-W7-T1: analytic AA stroker for arcs, needles, and spline curves — opaque core and angle-independent weight, replacing LICE_Arc and ThickFLine on the editor's radial and curve surfaces
2026-08-01 15:12:07 -04:00
daniel
704b7ef373
fix: enlarge every sub-2px stroker width to 2px, per Daniel's ruling
...
Knob track arc, inner-dial needle, and mini velocity-trace all sat below the analytic stroker's opaque-core floor. Raised to 2px; updated visual-design-language.md and core/ui/CLAUDE.md to match; kept the 1px-behavior test, corrected its stale comment.
2026-08-01 15:11:58 -04:00
daniel
3ad30942a7
temp-cortex limiter dump
2026-08-01 15:09:30 -04:00
daniel
07628a2059
fix: close Θ-W7-T1 round-2 leftovers — NaN guard placement, comment attribution, CLAUDE.md export
...
Moves the NaN/Inf finiteness check to addSegment where the UB-causing cast actually happens, makes strokeBounds reject an interior non-finite point instead of swallowing it, corrects a LICE_GetPixel misattribution, and documents rasterRowOffset.
2026-08-01 13:59:09 -04:00
daniel
3fb77027c6
fix: close Θ-W7-T1 review — scaling guard, opacity claims, two vacuous test fixes
...
Guards the stroke blend against LICE_EXT_GET_SCALING, tightens the analytic-stroker's boxes and NaN handling, corrects the opaque-core threshold and inner-dial rationale in the docs, and re-derives two review-flagged tautological tests so they actually fail against the bugs they claim to catch.
2026-08-01 13:45:43 -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