Envelope declick: micro-ramp the DX7 velocity + pingpong-send gain steps

Paul's hunch confirmed: two instantaneous native-gain STEPS were amplitude discontinuities on possibly-ringing voices, independent of CPU load. (1) The DX7 per-note velocity set v.out.gain by setValueAtTime, so a retrigger jumped the prior note's still-ringing release tail

• Fix 3 (discrete wave/type/voices enum steps on sounding voices) left in place, documented: an a-rate selector can't micro-ramp, and deferring to gate-off breaks mono-legato voices that hold the gate high…

• engine.test ALL PASS; soak gate PASS, workletTruth converges. The steps sit on ~-15dB tails, below the sentinel's discontinuity threshold

▶ Play it: Highway Heat Death — where the synthesis is the identity, not the decoration https://stellate.app/?genre=synthwave&seed=1485&path=859.9909,878.9942,840.9942&xdur=13.122

db6f700 https://github.com/aboard-io/stellate/commit/db6f700d69c9040f2574f3151ded9bda0c775e8d