Hey,
> I actually know of two other adsr envelopes out there for Pd, both non linear, they are: bsaylor/aenv~ and creb/eadsr~ - both are hardcoded.
attached you'll find my own personal envelope generator (cadsr~) which allows you to set the shape individually for each segments. Exponential segments take another argument to control the shape ( >0 fast rise, <0 slow rise).
---
For a "natural" envelope generator, like those found in analog synthesizers, you can use a 1-pole lowpass filter and change the frequency for each segment to emulate the behavior of a capacitor. The formular for the frequency is:
T / (d * 2pi)
where d is the segment duration in seconds and T is the number of time constants, e.g. with 5 time constants, the evelope generator will reach 99.3% of the target value. Note that the target value is always approached asymptotically and - at least in theory - never fully reached. https://en.wikipedia.org/wiki/RC_circuit#Time-domain_considerations
See the attached (ceadsr~) for an example. This one actually has a proper help patch :-)
Christof
Gesendet: Samstag, 13. Juli 2019 um 09:57 Uhr
Von: "Alexandre Torres Porres" <porres@gmail.com>
An: "matthew brandi" <mfbrandi@outlook.com>
Cc: Pd-List <pd-list@lists.iem.at>
Betreff: Re: [PD] best non linear envelope design?
On 13/07/2019 08:11, Alexandre Torres Porres wrote:
the [adsr~] object, so far, is only linear, but I'm hoping to offer a hardcoded exponential setting for it, but not sure yet which one, hence my mail to the list
Dear Alexandre
Wouldn’t the “classical” approach be convex attack (0 < pow < 1) and concave decay and release (pow > 1)?
if you say so, I'm buying :)
If so, you would be looking at a set of hardcoded exponents, not a single exponent for all segments, right?
yup, I meant a set
FWIW, if you have the configurable [envgen~], I would make life easy for yourself and leave [adsr~] as linear.
Best
I see, but I also think a preconfigured [adsr~] makes things easier if that's all you want.
I actually know of two other adsr envelopes out there for Pd, both non linear, they are: bsaylor/aenv~ and creb/eadsr~ - both are hardcoded. I haven't checked them yet, I hope I can figure it out by looking at the code, since the documentation doesn't say much.
cheers
_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management ->
https://lists.puredata.info/listinfo/pd-list