Hi there, I'm currently in the process of building an envelope generator and have all of the controls (attack depth & time, sustain depth, decay depth and time) apart from sustain time. here's a screenshot of my patch, what values should I send in the message to give me this function?
-
Trying to create sustain time function
-
bump
-
@Jamestocher Hi maybe you can rephrase your question to help me understand. I was under the impression that sustain time is the time between when you signal finishes its decay and when the release time starts. In other words, I haven't encountered a system with a preset "sustain" time, because in my experience sustain has always been how long I pressed a key down.
-
@Jamestocher The last value in each sequence needs to be CALCULATED from the beginning of the entire sample, so if your attack lasts x and your decay lasts for y then your message must be sent as
[$value at top of attack $time to get there ((x)) COMMA
$sustain level $decay time ((y)) $time of start of decay---from beginning of sample--- (x unless you want a "hold after the attack, in which case =x+hold-time) COMMA
$final level (often zero) $release time (time to get there) $time to start the release ((x+y(+hold if you had one!!)) + SUSTAIN TIME(
Sorry to introduce "hold" as well, but you might want it one day!
A BETTER WAY to explain it is maybe.... each group between commas is "value to go to" "in time" "starting at a time elapsed since the beginning of the whole sample", and of course the first instruction assumes a start at the beginning of the sample and therefore only has 2 parameters.
You could have an envelope that goes up and down (and sideways) as often as you like.
David.
PS.. something like this.....vline parameters.pd