Ξ-W2-T1 remediation: print master gain into the bake, derive the window from the dialed sound, reset play mode to Trigger
This commit is contained in:
@@ -100,8 +100,24 @@ int main() {
|
||||
CHECK(sameCurve(after.play.pitchVelocityCurve, VelocityCurve::zero()));
|
||||
CHECK(sameCurve(after.play.filter.velocityCurve, VelocityCurve::zero()));
|
||||
|
||||
// --- RESET: play mode, to TRIGGER rather than to the struct's Gate default -------
|
||||
// The bake's product is a finished one-shot; Trigger plays it back verbatim, Gate would
|
||||
// re-gate its printed release tail and each iteration would truncate the last one's.
|
||||
CHECK(after.play.playMode == PlayMode::Trigger);
|
||||
CHECK(freshPlay.playMode == PlayMode::Gate); // and that really is NOT the default
|
||||
// The Trigger face it lands on plays the whole file flat: full span, unity throughout.
|
||||
CHECK(after.play.trigger.lengthFraction == 1.0);
|
||||
CHECK(after.play.trigAhd.attackSeconds == 0.0);
|
||||
CHECK(after.play.trigAhd.decaySeconds == 0.0);
|
||||
{
|
||||
// …and a GATE-dialed instrument lands there too: this is a reset to a chosen
|
||||
// neutral, not the dialed value surviving.
|
||||
InstrumentParams gated = dialed();
|
||||
gated.play.playMode = PlayMode::Gate;
|
||||
CHECK(resetAfterBake(gated).params.play.playMode == PlayMode::Trigger);
|
||||
}
|
||||
|
||||
// --- RESET: the amp envelope, staged, every stage and every curve exponent ------
|
||||
CHECK(after.play.playMode == freshPlay.playMode);
|
||||
CHECK(after.play.adsr.attackSeconds == freshPlay.adsr.attackSeconds);
|
||||
CHECK(after.play.adsr.holdSeconds == freshPlay.adsr.holdSeconds);
|
||||
CHECK(after.play.adsr.decaySeconds == freshPlay.adsr.decaySeconds);
|
||||
|
||||
Reference in New Issue
Block a user