<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On 1 September 2017 at 02:16, Tom Wiltshire <span dir="ltr"><<a href="mailto:tom@electricdruid.net" target="_blank">tom@electricdruid.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
I’m writing some code for a velocity-sensitive envelope generator. This throws up a few issues I haven’t had to deal with before.<br>
<br>...<br>
I play a loud note with Sustain at maximum and a very long Release. Then I let go of the note (Gate goes low, long release starts) and play another very softly. The last output level is very close to maximum amplitude, since the Release time is long and it hasn’t dropped much yet. But the new note is very quiet and even the maximum Attack level could well be far less than the current output.<br>
<br>
So what should I do? Attacking downwards seems completely wrong. Jumping abruptly to zero and then attacking up to a much quieter note completely chops off the long release of the previous note. Are there other options?<br>
<br>
Has anyone else come up against this? What did you decide? How do modern monosynths that include velocity sensitivity deal with it? What does Moog do, for example?<br>
<br>
Thanks,<br>
Tom<br></blockquote><div><br></div><div>Hi Tom,</div><div><br></div><div>Missed replying first time around on this, but I've tackled this in several synths. I'm assuming here that you are going to use a VCA to control the amplitude of the entire envelope as raw velocity changing time constants shouldn't be an issue.</div><div><br></div><div>I decided to add a velocity glide one pole low pass filter to smooth out changes in velocity between notes of a mono synth, this way changes throughout the synth based on velocity have a single point of control to decide how smooth they should be. If you want the maximum flexibility you could have both the raw velocity and the one pole low passed velocity as modulation sources, and it's up to the customer to pick which behaviour they want.</div><div><br></div><div>Another alternative is to have a low pass filter on each velocity cv being sent to control the amplitude of each envelope VCA, and use the attack time to adjust the smoothing. This way you can fine tune per envelope how smooth you want velocity transitions to be.</div><div><br></div><div>(just skimmed the thread again and can see that Chris)</div><div><br></div><div>Cheers,</div><div><br></div><div>Andy</div></div></div></div>