On Nov 30, 2003, at 11:48 AM, Julian Rohrhuber wrote:
when trying to release a synth within less than
blocksize/samplerate they do not get released reliably.
Anytime a gate off message is scheduled in the same control period
as the s_new, the EnvGen will never see the trigger.
possible solutions:
initialize gate to -1 < gate < 0. Then if EnvGen sees 0 on starting
up it can assume that the EnvGen has been released by explicitly
setting it to zero. gate must be > -1 because that is already used
for the EnvGen voice stealing mode.
pro: seems like the most minimal change.
cons: This would break existing patches that wait for a
trigger, because all patches that start with 0 waiting for a trigger
will go immediately into a done state. These patches would have to
be changed to initialize gate < 0 and recompiled. Notationally
inconvenient: would require explicitly initializing the gate
argument of a SynthDef.
have a separate input for start trigger and release trigger.
cons: breaks all existing patches that use EnvGen. not as
simple as a single gate. seems inelegant.