Hello,
Although the standard Envelope Generator module lists a max duration of 12 seconds for decay and release, each one appears to actually last 5-6 seconds. I tested this by sending the envelope CV to an oscilloscope and comparing its duration to my DAW's clock. Is this a bug of some kind, or am I missing something?
FWIW, the max attack is 7 seconds and looks correct via the same testing method.
Thanks!
Envelope generator max decay and release time
Re: Envelope generator max decay and release time
The standard CA Envelope Generator module is supposed to be an analog envelope. That's why it has an exponential response. essentially that means that the decay and release stages decay rather quickly at first and then drag on for a while until actually reaching 0V. In the oscilloscope that definitely looks weird, because the scopes in VM can't display 0.0001V and 0V in a way that's distinguishable (by eye).
Here's a little test setup i did to verify: i use a toggle button to gate the envelope to make sure the gate is active all the way through. i then run the envelope signal through a boolean comparator that outputs a gate for as long as the input is greater than 0V. As a reference i've set up a second envelope generator (AD env gen in that case) with the same timings for attack and decay (both 7 seconds on both envelopes). As you can see in the scope the green signal (ca envelope gen) appears to reach its end a lot faster than the reference env gen (orange signal). but the boolean conversion (blue signal) shows that the actual value stays above 0V for the entire duration of the reference, which means that both envelopes are equally long.
so in essence, this is not a bug, but a feature ;D
if you need long envelope times and are satisfied with AD envs you can try the free Synthetic_Future X R_Ware Micro AD Envelope that i have used as a reference here.
Here's a little test setup i did to verify: i use a toggle button to gate the envelope to make sure the gate is active all the way through. i then run the envelope signal through a boolean comparator that outputs a gate for as long as the input is greater than 0V. As a reference i've set up a second envelope generator (AD env gen in that case) with the same timings for attack and decay (both 7 seconds on both envelopes). As you can see in the scope the green signal (ca envelope gen) appears to reach its end a lot faster than the reference env gen (orange signal). but the boolean conversion (blue signal) shows that the actual value stays above 0V for the entire duration of the reference, which means that both envelopes are equally long.
so in essence, this is not a bug, but a feature ;D
if you need long envelope times and are satisfied with AD envs you can try the free Synthetic_Future X R_Ware Micro AD Envelope that i have used as a reference here.
Re: Envelope generator max decay and release time
The stock Envelope Generator module is a bit odd. Despite the graphics on its panel depicting typical resistor-capacitor ADSR curves https://www.electronics-tutorials.ws/rc/rc_1.html and https://www.electronics-tutorials.ws/rc/rc_2.html in reality the attack bends the "wrong way" for instance.
The Super Envelope Generator (included in the VM Core bundle) gives you far more control - you can fine-tune exponential, linear or logarithmic curves for each segment.
By the way I doubt that Moog and Ussachevsky actually wanted their envelope generator designs to output non-linear signals. I get the impression that some people think that the RC curves are the only true way that envelope generators should work but it's probably just an historical accident as charging and discharging a capacitor would have been the only practical/affordable way to implement an envelope generator 60 years ago.
The Super Envelope Generator (included in the VM Core bundle) gives you far more control - you can fine-tune exponential, linear or logarithmic curves for each segment.
By the way I doubt that Moog and Ussachevsky actually wanted their envelope generator designs to output non-linear signals. I get the impression that some people think that the RC curves are the only true way that envelope generators should work but it's probably just an historical accident as charging and discharging a capacitor would have been the only practical/affordable way to implement an envelope generator 60 years ago.
Re: Envelope generator max decay and release time
Couldn't resist jumping in here. The stock Cherry EG module is also strange in that there is a little flat top between the attack and decay phases. I saw it years ago, don't know if it's still there.
The Moog modular envelope generator has an essentially linear attack phase and log decay and release phases. The attack is almost a straight line even though it is a capacitor charging. This is due to the fact that the destination of the charge is 12v, but it is halted early (at about 5v? don't remember) to start the decay phase. This means it never has a chance to "bend over" and only the beginning of the curve, which is essentially straight, is seen. All my envgens work this way too.
Yours in trivia,
--mb
The Moog modular envelope generator has an essentially linear attack phase and log decay and release phases. The attack is almost a straight line even though it is a capacitor charging. This is due to the fact that the destination of the charge is 12v, but it is halted early (at about 5v? don't remember) to start the decay phase. This means it never has a chance to "bend over" and only the beginning of the curve, which is essentially straight, is seen. All my envgens work this way too.
Yours in trivia,
--mb
Re: Envelope generator max decay and release time
That's a fascinating detail Mark. That Bob Moog reduced the attack phase non-linearity with a charging voltage that was higher than the transition threshold shows what a great engineer he was. As always I'm impressed by your in-depth knowledge.
And yes, that strange flat top "feature" between the attack and decay phases in CA's EG is still there...
It seems to only last about 1 millisecond so few people notice it.
And yes, that strange flat top "feature" between the attack and decay phases in CA's EG is still there...
It seems to only last about 1 millisecond so few people notice it.
Re: Envelope generator max decay and release time
There's another quirk of the stock CA envelope generator that you should be aware of, too.
If you have a long Attack time, and release the gate before it reaches the 5V peak, it will switch to the Release phase. All well and good, proper EG behaviour. However, if you have a long Release time, and retrigger the Attack phase before it reaches 0V, the Attack phase will take the same amount of TIME to reach the 5V peak as it would have done when starting from 0V. This gives it a shallower slope that the previous attack phase, which is quite unusual behaviour in the analogue world.
https://www.youtube.com/watch?v=FvK_x9WD0KA
If you have a long Attack time, and release the gate before it reaches the 5V peak, it will switch to the Release phase. All well and good, proper EG behaviour. However, if you have a long Release time, and retrigger the Attack phase before it reaches 0V, the Attack phase will take the same amount of TIME to reach the 5V peak as it would have done when starting from 0V. This gives it a shallower slope that the previous attack phase, which is quite unusual behaviour in the analogue world.
https://www.youtube.com/watch?v=FvK_x9WD0KA
______________________
Dome Music Technologies
Dome Music Technologies
Re: Envelope generator max decay and release time
The MRB Laboratory Velocity Envelope Generator is my go-to EG (for my own patches) because it implements the analogue RC behaviour so perfectly. I tend to stick to the CA stock EG when I'm creating presets for my own modules, as everyone is guaranteed to have it available to them.MRBarton wrote: ↑Sat May 25, 2024 3:32 am The attack is almost a straight line even though it is a capacitor charging. This is due to the fact that the destination of the charge is 12v, but it is halted early (at about 5v? don't remember) to start the decay phase. This means it never has a chance to "bend over" and only the beginning of the curve, which is essentially straight, is seen. All my envgens work this way too.
The Big Rat module features the ability to have more pronounced 'bend' on the Rise and Fall times, precisely by varying the 'target' voltage level. When the Curve control is at 0, the charge / discharge curve takes precisly 1 RC time constant to reach the peak level. However, when the Curve control is at 10, the 'target voltage' is equal to 5V (for Rise phase) or 0V (for Fall phase). Because an RC curve is asymptotic, it will never reach that exact voltage, and so it effectively turns into an ASR envelope. It's all a bit quirky, and you need to have your wits about you. In my defence it was the first module I ever created and I wanted to make it as flexible as possible.
![Geek :geek:](./images/smilies/icon_e_geek.gif)
https://www.youtube.com/watch?v=8b9Q8tUx7xQ
______________________
Dome Music Technologies
Dome Music Technologies
Re: Envelope generator max decay and release time
Sorry to stray off topic even more but this has become an interesting thread as one of my current background strands of design work is close integration of envelope generation into Custom in coming months.
I've found the best way to think about what is a surprisingly complex area is to use finite-state machine diagrams. Some messy scribbles from my notebook...
->T represents a target voltage and @R represents a rate to approach the target and obviously each arc is labelled by a condition for state change. It's a useful way of getting to grips with problems that are difficult to think about as pseudo code.
This is ignoring things like non-linearity but even the basics can be complicated as there are subtle choices to be made. I don't think there is one best approach so switches represent options.
I've found the best way to think about what is a surprisingly complex area is to use finite-state machine diagrams. Some messy scribbles from my notebook...
->T represents a target voltage and @R represents a rate to approach the target and obviously each arc is labelled by a condition for state change. It's a useful way of getting to grips with problems that are difficult to think about as pseudo code.
This is ignoring things like non-linearity but even the basics can be complicated as there are subtle choices to be made. I don't think there is one best approach so switches represent options.
-
- Posts: 85
- Joined: Fri May 14, 2021 2:16 am
Re: Envelope generator max decay and release time
Really helpful demonstration. Thank you.ChR_is wrote: ↑Fri May 24, 2024 9:13 am The standard CA Envelope Generator module is supposed to be an analog envelope. That's why it has an exponential response. essentially that means that the decay and release stages decay rather quickly at first and then drag on for a while until actually reaching 0V. In the oscilloscope that definitely looks weird, because the scopes in VM can't display 0.0001V and 0V in a way that's distinguishable (by eye).
Here's a little test setup i did to verify:
CAEnvelopeTiming.png
i use a toggle button to gate the envelope to make sure the gate is active all the way through. i then run the envelope signal through a boolean comparator that outputs a gate for as long as the input is greater than 0V. As a reference i've set up a second envelope generator (AD env gen in that case) with the same timings for attack and decay (both 7 seconds on both envelopes). As you can see in the scope the green signal (ca envelope gen) appears to reach its end a lot faster than the reference env gen (orange signal). but the boolean conversion (blue signal) shows that the actual value stays above 0V for the entire duration of the reference, which means that both envelopes are equally long.
so in essence, this is not a bug, but a feature ;D
if you need long envelope times and are satisfied with AD envs you can try the free Synthetic_Future X R_Ware Micro AD Envelope that i have used as a reference here.
Re: Envelope generator max decay and release time
Wow - I didn't expect my question to kick off such a thorough conversation. Thanks everyone for chiming in and educating this modular newbie. ![Smile :)](./images/smilies/icon_e_smile.gif)
![Smile :)](./images/smilies/icon_e_smile.gif)