Exponential and Logarithmic Curves

I’ve been meaning to ask about this for a while; I keep wanting different curves on the ADSR Unit and this is potentially possible with what we have now but I am not a mathematician and while if I really put my mind to it I can do maths to quite a high level, I really struggle working out these things sometimes. Also, I am not quite sure how to actually get the feedback!

I mean, I know that to get an exponential curve you just feed back a little of the signal so it has an ever increasing rate… but after that

I guess it would mean dedicating a track to be an envelope, but that’s ok! It’s fun :slight_smile:

Anyone got any insights, ideas?

Easiest method: Modulate a linear segment’s speed by itself! If you apply positive speed modulation, it’s exponential. If you apply negative speed modulation, it’s logarithmic. You could test this out by setting the DA to linear and plugging its output into its own speed input.

Mathier method: I’m not sure how to do this in the ER, but in Reaktor I use exponentiation. For instance, you take a segment and square the output to get a more exponential curve, or raise it to the 0.5th power for a more logarithmic curve. The advantage of this method is that you can keep the same segment length while changing the curve shape.


Hehe, I just moved your post - literaly seconds ago :smiley:

We’re on it - this is great, let me digest… :slight_smile:

OK, this is really helpful, thank you, and it sounds like it’s totally doable, until the internal unit outputs become available in the ER-301 then it requires a dedicated channel to do it via the internal routing of the output of that channel back to the mod input of the envelope stages via a mixer/vca!

You would then use that envelope elsewhere in your ER-301 by the same output reference - I think this is gonna work… I’ll try later on this evening and report back!

1 Like

I finally got round to trying this; the shape changes but the overall time for that segment changes too! This is still pretty useful, but I think I was looking for the exponentiation / speed effect more than this shortening/lengthening effect.

I can’t think of a way to do this with the ADSR Unit

1 Like

Did you ever figure out how to use Exponential and Logarithmic curves in the ADSR unit? If so could you give an update on the process?

Sure :slight_smile:

Create an ADSR on a global chain

Assign the output of that chain the the portion of the envelope you wish to change to Exp or Log e.g. attack

You apply negative or positive feedback depending on which you want.

Then assign the output of the chain to wherever you want the envelope to be used e.g. into your VCA


I just got a like on the post above, thanks, but the global chain in the example I posted above is now redundant, you can map the output of an envelope back into itself using the ‘locals’ in the assign input selector.


yes, and then use a bipolar vca to control how much the envelope goes back to one of its stages. then when you go positive the stage goes towards log, when you go negative it goes towards expo.
with a careful range mapping you can build useful UI for your custom units


Sorry for bumping this old thread, but as the above proposal to have an envelope modulate itself to achive non-linear curves has the side effect of changing the time of the modulated envelope segment, does it make more sense to have the envelope shaped thru a VCA, with the envelope modulating the VCA gain?

Shouldn’t this give a somewhat exponential shape without time changes?

Yep, that would be equivalent to an exponential.

On a side note: the user you quoted is no longer participating here.

1 Like

Wondering whether there are any more thoughts on more useful envelopes with different responses? Seems like this would be a great addition for many people…

1 Like

The easiest way atm is to run your adsr through a table. I don’t have the 301 at hand now but I think it’s called scanner. In my patch (on this website) called Swipe I also added various audio files for different responses that change the behaviour of a linear input Log, Exp, etc… Feel free to open it up and snatch those :wink:

1 Like

Could you do this to control the band volumes of the EQ3 since they are natively controlled by a bipolar exponential VCA? I’m having a difficult time making a custom unit that controls those bands in a satisfying way…

check Zeta’s comment above here in this post and download his Swipe custom unit, he used a sample scanner with some custom files to set the behaviour of faders. as of now i think its the only way.

There’s an EG in Accents called Points that you might like.

Hi folks. I could do with a little guidance on converting a control from its current logarithmic state to a linear state. I see that I should somehow feedback the control into itself but am unclear as to the process:

Specifically → I want to control the filter cutoff (e.g. Sieve) using my 16n Faderbank which communicates via i2C through a Teletype. The Teletype: SC.CV unit receives the linear gain changes from the fader but translates this into a rather challenging response curve. In this scenario how do I resolve this to create a linear response on the filter?


This is a common misconception.

The f0 control is already linear (only the display is log-scaled).
The V/oct control is exponential (you probably want to map your linear fader to this :wink:).

Thanks Brian.

Correct me if the following is wrong:

Mapping Fader to V/Oct input of Sieve provides an offset to the the f0 cutoff parameter. So using V/Oct does not provide me with a full range sweep of filter CLOSED → OPEN.

Mapping Fader to f0 does provide me with the full sweep. However although the display may be log scaled (thanks for the correction!) using this parameter is not effective as the key area of interest for a filter lies in minuscule area at the bottom of the fader (fader gain set x10000 using full scale of 16n).

So how might I enable a fader to open and close the filter fully whilst sidestepping the above control issue?

EDIT: I guess I could use an offset after the FB to expand the available range of the V/oct input. That does seem to work better all right… Is that how one might best approach this then? An offset of -0.54 does close the filter and provides enough range to open it again.


1 Like

Set f0 to the average center freq of the input sounds that you want to open/close (probably around 800Hz). Arrange to have the bottom of your fader send -100 (which is -10V or -10 octaves) and to have the top of the fader send +100 (which is +10V or +10 octaves).

1 Like