attilammagyar/js80p

Occasional sudden jumps in dynamic envelope controlled parameters when the same voice is triggered multiple times in quick succession (especially in monophonic mode) while the envelope is being changed

attilammagyar opened this issue · 1 comments

When a parameter is updating the ramps on its event queue for a dynamic envelope, it may cancel previously scheduled envelope end and subsequent start events if those happen to fall on the same rendering block.

Reproduction

  1. Configure long audio buffers in the host (4196 samples or more - it's impractical, but long buffers make it easier to get multiple envelope events scheduled for the same block);
  2. Switch to monophonic mode to make sure that the envelope events will be assigned to the same voice;
  3. Use a dynamic envelope for e.g. the Volume parameter of an oscillator;
  4. Assign a MIDI controller (or a MIDI controller driven Macro) to one of the parameters of the envelope.
  5. Trigger short notes in quick succession.

Expected result

Envelope settings (especially attack and release) are honored in all notes, changed envelope settings are approached smoothly, and if release times are longer than how the new notes are triggered, then voice cancelling and retriggering is also smooth.

Actual result

Occasional sudden jumps at the beginning and end of notes.

The fix will be released in v3.0.0 soon. (The v2.9.0 preview version already contains it.)