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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user