[sdiy] Soft ADSR ways?
Scott Nordlund
gsn10 at hotmail.com
Mon Feb 14 08:06:13 CET 2011
> can I make a suggestion?
>
> a square function is a lot less CPU intensive than an expo function.
> to the ear, there's very little different between a square and an expo.
>
> I'd suggest using a square, then halve it.
>
> X *= X;
> X >>=1 ;
>
> Paul
It's suggested in software like Pure Data to use "quartic" envelopes,
where the fourth root is taken of the desired amplitudes, the points are
linearly interpolated and then the signal is multiplied by itself twice
to get the fourth power. So the result passes through the same points
as a linear envelope but with a distorted curve that resembles an
exponential. It's cheap, and a decent compromise.
Still, this isn't the same as an asymptotic envelope based on a
difference equation, though they will be similar for simple envelopes
that start at the maximum value and decay to zero. Decay to a non-zero
sustain value in a quartic envelope will be a truncated pseudo-
exponential curve rather than something that asymptotically (surprise)
approaches the sustain value. I can't say which is superior here since
the quartic envelope is more accurate according to the ear's perception
of loudness, but the asymptotic envelope is smoother.
And attacks are very different, usually the asymptotic attack is an
inverted exponential decay that moves to the next stage when it
reaches a threshold; a quartic or shaped exponential attack will
resemble a sound played in reverse. It's sort of unnatural, like
long attacks on a DX7 (which I believe are exponential as a consequence
of the log sine math).
Well, that's been discussed here before, Veronica suggested in those
cases to use some automatic piecewise linear construction of whatever
curve you want. But deciding what characteristic is most desirable
still seems to be the hard part.
For all the work that's obviously gone into this decades ago, is there
anything that reaches a definitive conclusion?
More information about the Synth-diy
mailing list