Trying to work with envelopes?

I am trying to hold a value for three seconds whenever it begins to fall.

This may be achievable with some envelope generators, though I’m not sure which. I THINK a maths modules where “signal in” does not decay immediately but only after a three second delay.

Seem unable to do this in the er-301 though.

There aren’t currently any EGs with a hold segment if that’s what you’re looking for?


I mean

a maths modules where “signal in” does not decay immediately but only after a three second delay

Not sure what you mean by a

hold segment

holding it for a set length? That’s what I need. I’m trying to figure out how to do something which I feel I’ve been on the cusp of all weekend. So one train of thought is that the following [may not be achievable anyway] MIGHT work:

a. get the value of a global chain G1 whenever G1 falls
b. delay that by three seconds
c. but empty the delay whenever G1 rises above that value it previously fell below.

A I MIGHT be able to do via a sample and hold with a falling trigger, both triggered by and sampling G1. But the threshold value [0.1 by default] is not indirectly programmable in the GUI, which raises problems. I would need to convert G1 so that it falls below the threshold of the sample and hold whenever it falls at all: thereby CONVERTING ANY FALLING EDGE INTO A TRIGGER.
Could you do this by comparing {G1} and {G1 through a micro delay}, and returning null value whenever {G1} is equal to or higher???

No idea about C. Is there a way to empty a delay?

As to C, you could maybe COMPARE [again] the result of the delay unit with {G1}, and just return the higher value… That SEEMS to be the same as

hold a value for three seconds whenever it begins to fall

which was the goal: returning the value of the highest point in a signal across some length of time [three seconds].

That’s not quite right, but I think I have a handle on this now… I’ll get back to you :smiley:

hold a value for three seconds whenever it begins to fall

OK so first things first, SOMETHING worked :slight_smile: a little


The above is a screenshot of when in1 is fed a triangle wave: the result changes shape only when in1 rises [ish?]: the result of the [global] chain tracks in1 only when in1 rises. I may want to add a slew there, but I’m not clear yet if it’s just a dead end.

I’m genuinely confused about the track / sample and hold units, esp in this firmware.

But anyway, the main issue is what I said about delay. I need to work out how to hold in1 for three seconds when it falls. to get a track and hold to hold in1 whenever in1 falls – triggered by the above chain – then getting it to track again three seconds later. I hoped this could be done by converting the above chain into a trigger, and adding a three second delay that switches it to track. The problem is I cannot easily see a way so that only that delayed trigger gets the track and hold to track: what if the signal rises and falls again in those three seconds?

Returning the higher value-- of in1 and the hold – would only be necessary when that is achieved. It’s probably yet more complicated than that, but it’s a start.

Sorry if I’m misusing the forum: just thinking out loud / wondering if anyone knows how to do the task or sub-tasks I’m talking about.

There’s a Timed Gate in Accents that outputs a gate of a set length when triggered (e.g. 3 seconds), and won’t retrigger until it completes it’s cycle. The Compare unit could be used to detect the falling edge of the TRI and trigger the Timed Gate. I think Compare only senses a rising edge so you’d probably need to invert the signal. The Timed Gate could feed a the Track and Hold.

No idea if any of the above will work. Just brainstorming with you. These are kind of tricky designs you’re working on. :wink:

1 Like

It’s probably best to take care of this before moving on with more complicated patches. What specifically is confusing you about these units?

1 Like

ok that sounds GREAT. as to the sample / track and hold, it’s just that i don’t have the documentation so was / am confused about the different settings for the gate control. think i got it now, but trial and error is a chore.

this is what i did this eve: though i may have to rethink now i’ve read the above i quoted.

0014 (16.6 KB)

runs at about 4% which isn’t frightening especially if you can delete it after use.

the above global chains i HOPED would work so that whenever the signal falls it is sampled until the signal is over that sample again, then it tracks. but there are some issues still…

it may… NOW… be easy to use a timed gate to [if i understood correctly] hold the value of {tracks if s > hold} for three seconds whenever {gate if s > t&h} is off.
and leave {tracks if s > hold} as normal when {gate if s > t&h} is off [which should also reset the timed gate] or the three seconds is up

the local chain will i hope implement the global chains such that out1 is fed to {s} and un/bypassing the vca in the local chain will leave volume of out1 unchanged – though i’m not quite expecting any genuine success with this ha :slight_smile: [helps learning though] – as results seem logical but not quite right yet…

Hi Vlgk
I think the Maths function you are referring to eventually is a slew limiter function. You should take a look at the slew limiter unit. Maybe that will do it?

No luck at all with the slew limiters available in the er301 :slight_smile: but thanks.

I thin it’s cos – even if you could set the slew down to 3 seconds – it just slows the input, does not hold it. Though, oddly given you can change the up and down slew values in the er301, the unit always seems to output a mean value…

1 Like

In the Slew Limiter’s algorithm, the maximum allowed slew time is 1000sec even if you edit the time control to have a wider range. So no true freezing with the Slew Limiter unit but you can hold a value for a few seconds within +/-1%.