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.
This commit is contained in:
2026-08-02 07:41:27 -04:00
parent e2981e83ee
commit 1490c25250
3 changed files with 64 additions and 15 deletions
+7 -4
View File
@@ -232,10 +232,12 @@ int main() {
}
// --- Regression baseline: the neutral render is the source, sample for sample --------
// DERIVED rather than recorded, so it survives a compiler change: a Trigger voice at its
// own root under Varispeed, with the default flat amp and velocity shapes and no filter,
// reads at ratio exactly 1 — so every printed frame must BE its source frame. An added
// stage, a moved default, or a lost early-out anywhere in the chain moves a sample here.
// A Trigger voice at its own root under Varispeed reads at ratio exactly 1 and hits no
// filter, so every printed frame equals its source frame PROVIDED the amp curve's gain at
// the plan's velocity is exactly 1.0 too (asserted below rather than assumed) — that exact
// value is a property of flat()'s two endpoints cancelling at velocity 100, not a
// guarantee of eval() at an arbitrary velocity. An added stage, a moved default, or a lost
// early-out anywhere in the chain moves a sample here.
{
SampleData s;
s.frames.resize(4000);
@@ -249,6 +251,7 @@ int main() {
// Shorter than the play span, so the window closes before any note-end shaping.
const BakePlan plan = planOf(/*total=*/1000, /*noteOn=*/0, /*noteOff=*/1000);
CHECK(s.velocityCurve.eval(100.0) == 1.0); // names the real cause if this ever fails
const BakeAudio audio = renderBake(s, plan, kUnity);
CHECK(audio.channelCount == 1);
CHECK(audio.frameCount() == 1000);