Strange question about envelope "pre" attack
-
- KVRian
- Topic Starter
- 523 posts since 8 May, 2012 from E.U.
Hi Folks,
Here's (perhaps) a weird one:
Imagine you're using MXXX to create a midi triggered ducking envelope effect, like in Xfer LFO Tool or Cableguys VolumeShaper. So, not a fixed length (of one bar or whatever) but just every time the midi trigger comes in, it fires off your envelope, which is controlling, say, volume.
Now, normally an envelope works like this:
Attack will trigger at a certain initial value, let's say 0% volume in this case.
You then let it increase in the envelope over the next 2 seconds to 100%.
Now, here's the problem: if you re-trigger the envelope within that 2 seconds, you'll get a click. Because the envelope doesn't care or look at the current volume at the moment of the new attack. So if, after 1 second, the volume is at 50%, then a new trigger will instantaneously bring the volume back to the start level of the attack (0%).
So what i'm thinking is this: one needs a sort of "pre"-attack segment of the envelope, that will look at the current value of modulation at the moment of the new attack, and transition from that level to the initial attack value over a user defined amount of time, say 100ms or 1ms or whatever.
Another way to describe this would be as a sort of "portamento" time (and curve) from the current value to the initial value.
Haha, clear as mud i'm sure, i'm curious if anyone knows what the hell i'm talking about!
Here's (perhaps) a weird one:
Imagine you're using MXXX to create a midi triggered ducking envelope effect, like in Xfer LFO Tool or Cableguys VolumeShaper. So, not a fixed length (of one bar or whatever) but just every time the midi trigger comes in, it fires off your envelope, which is controlling, say, volume.
Now, normally an envelope works like this:
Attack will trigger at a certain initial value, let's say 0% volume in this case.
You then let it increase in the envelope over the next 2 seconds to 100%.
Now, here's the problem: if you re-trigger the envelope within that 2 seconds, you'll get a click. Because the envelope doesn't care or look at the current volume at the moment of the new attack. So if, after 1 second, the volume is at 50%, then a new trigger will instantaneously bring the volume back to the start level of the attack (0%).
So what i'm thinking is this: one needs a sort of "pre"-attack segment of the envelope, that will look at the current value of modulation at the moment of the new attack, and transition from that level to the initial attack value over a user defined amount of time, say 100ms or 1ms or whatever.
Another way to describe this would be as a sort of "portamento" time (and curve) from the current value to the initial value.
Haha, clear as mud i'm sure, i'm curious if anyone knows what the hell i'm talking about!
-
- KVRAF
- 10305 posts since 2 Sep, 2003 from Surrey, UK
I drew a pic to see if I understand correctly:
This must be an issue in other products with retriggerable envelopes - I wonder what they do.
This must be an issue in other products with retriggerable envelopes - I wonder what they do.
-
- KVRian
- Topic Starter
- 523 posts since 8 May, 2012 from E.U.
Thanks dude, you got it, a picture speaks a few hundred words!
About other products: i'm not aware of any other plug that has the feature i'm suggesting, although maybe some which sound good (like Serum) might do some sneaky, behind the scenes smoothing to prevent clicks.
About other products: i'm not aware of any other plug that has the feature i'm suggesting, although maybe some which sound good (like Serum) might do some sneaky, behind the scenes smoothing to prevent clicks.
-
- KVRist
- 132 posts since 23 May, 2017
I remember having options like "Declick" (which does what you've drawn in e.g. the vengeance sidechain plugin) or have seen written in the manual that there is a fixed fade of 1ms when being triggered (therefore an optional 1ms lookahead & latency). No magic behind it. The important thing is they're set up in a way they preserve the tight timing.DarkStar wrote:This must be an issue in other products with retriggerable envelopes - I wonder what they do.
-
- KVRian
- Topic Starter
- 523 posts since 8 May, 2012 from E.U.
Right!
But i think for creative uses, you might want to set the "pre" attack time to longer then would ever be hard-wired behind the scenes, like 100ms or whatever.
But i think for creative uses, you might want to set the "pre" attack time to longer then would ever be hard-wired behind the scenes, like 100ms or whatever.
-
- KVRAF
- 2596 posts since 9 Jul, 2015 from UK
Could this be achieved by using a look ahead of X value then using an envelope delay of X value?
Or maybe using the report latency feature somehow?
Or maybe using the report latency feature somehow?
Melda Production & United Plugins
Surface Studio = i7, 32gb, SSD.
Windows 11. Bitwig, Reaper, Live. MTotal.
Audiofuse, Adam Audio monitors + sub, iLoud MTM.
Polybrute, Summit, Pro 3, Tempest, Syntakt, AH2.
Ableton Push 2, Roli Seaboard Block.
Surface Studio = i7, 32gb, SSD.
Windows 11. Bitwig, Reaper, Live. MTotal.
Audiofuse, Adam Audio monitors + sub, iLoud MTM.
Polybrute, Summit, Pro 3, Tempest, Syntakt, AH2.
Ableton Push 2, Roli Seaboard Block.
-
- KVRian
- Topic Starter
- 523 posts since 8 May, 2012 from E.U.
I want to have control over how long it takes for a parameter (as defined by the envelope) to go from its present value to the initial envelope attack value, when the envelope is retriggered.
-
- KVRAF
- 2596 posts since 9 Jul, 2015 from UK
But before the attack right?Mr D wrote:I want to have control over how long it takes for a parameter (as defined by the envelope) to go from its present value to the initial envelope attack value, when the envelope is retriggered.
Melda Production & United Plugins
Surface Studio = i7, 32gb, SSD.
Windows 11. Bitwig, Reaper, Live. MTotal.
Audiofuse, Adam Audio monitors + sub, iLoud MTM.
Polybrute, Summit, Pro 3, Tempest, Syntakt, AH2.
Ableton Push 2, Roli Seaboard Block.
Surface Studio = i7, 32gb, SSD.
Windows 11. Bitwig, Reaper, Live. MTotal.
Audiofuse, Adam Audio monitors + sub, iLoud MTM.
Polybrute, Summit, Pro 3, Tempest, Syntakt, AH2.
Ableton Push 2, Roli Seaboard Block.
-
- KVRAF
- 2596 posts since 9 Jul, 2015 from UK
Yes this might work.werzel wrote:So you want to apply an envelope follower to your envelope?
Melda Production & United Plugins
Surface Studio = i7, 32gb, SSD.
Windows 11. Bitwig, Reaper, Live. MTotal.
Audiofuse, Adam Audio monitors + sub, iLoud MTM.
Polybrute, Summit, Pro 3, Tempest, Syntakt, AH2.
Ableton Push 2, Roli Seaboard Block.
Surface Studio = i7, 32gb, SSD.
Windows 11. Bitwig, Reaper, Live. MTotal.
Audiofuse, Adam Audio monitors + sub, iLoud MTM.
Polybrute, Summit, Pro 3, Tempest, Syntakt, AH2.
Ableton Push 2, Roli Seaboard Block.
-
- KVRian
- Topic Starter
- 523 posts since 8 May, 2012 from E.U.
Hey guys,
I'm not really following how that would work (apply an envelope follower to your envelope) to achieve the desired result, anyone want to suggest a routing?
I'm not really following how that would work (apply an envelope follower to your envelope) to achieve the desired result, anyone want to suggest a routing?
-
- KVRist
- 460 posts since 25 Jan, 2016
OK, I'm not entirely sure how it would work either, but here is my thinking (which may be way off point!) -
Looking at an envelope, the attack portion can be seen as a "level" that gradually increases.
An envelope follower can be set to trigger at a selected level.
The envelope follower also has its own release parameter.
My idea is that if you apply the envelope follower to trigger at whatever level beyond 0 that you choose, you can apply the release to happen before the next attack of the main envelope.
Have I done it? No. So I don't have an example for you. Just sharing how I was looking at your problem.
Looking at an envelope, the attack portion can be seen as a "level" that gradually increases.
An envelope follower can be set to trigger at a selected level.
The envelope follower also has its own release parameter.
My idea is that if you apply the envelope follower to trigger at whatever level beyond 0 that you choose, you can apply the release to happen before the next attack of the main envelope.
Have I done it? No. So I don't have an example for you. Just sharing how I was looking at your problem.
-
- KVRian
- Topic Starter
- 523 posts since 8 May, 2012 from E.U.
I don't see how that would achieve the aim of telling that parameter to go from an arbitrary value (so, the value, whatever it is, at the time of the new note on) to the initial attack value, over a user defined period!
Perhaps you've got the answer, but i don't really follow how it would work or be implemented!
Perhaps you've got the answer, but i don't really follow how it would work or be implemented!