[Fpga-synth] Envelope - linear attack & expo decay/release?
Scott Gravenhorst
music.maker at gte.net
Thu Apr 2 17:41:58 CEST 2009
"The making of synthesizers in FPGAs." wrote:
>Here's a philosophical question:
>
>Last weekend I built an ADSR for my ARM/FPGA synth and it seems to work
>fine. The thing that's bugging me is that I used linear calculations for
>the gain, so when doing a long release that last little tail seems to
>cut off rather abruptly.
>
>The obvious solution is to use exponential decay for the release. I know
>how I'd implement that in hardware (scale the difference between where
>you are and where you're going by some constant related to the rate &
>add to current state). Question is, is the exponential curve also
>appropriate for the attack & decay phases?
>
>The ultimate envelope would seem to be one with the option for
>log/lin/expo curve on each segment, along with variable rate & target.
>You'd need three parameters to define every segment. Probably too
>complex, but certainly flexible.
>
>Thoughts? What have you tried in the past?
>
Eric,
My GateMan synths, both poly and mono use linear slopes for all of the ADSR phases. I
did not perceive abrupt changes in my envelopes - is it a matter of degree? I.e., how
long of a release are you doing that this is noticable?
I believe that analog ADSRs are usually exponential since they are a simple single
pole RC circuit allowed to charge or discharge through a resistor. When I did my
GateMan design (the first one) I considered expo, but first tried linear because it
was simpler. Having not noticed a problem, I went no further.
-- ScottG
________________________________________________________________________
-- Scott Gravenhorst
-- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/
-- FatMan: home1.gte.net/res0658s/fatman/
-- NonFatMan: home1.gte.net/res0658s/electronics/
-- When the going gets tough, the tough use the command line.
More information about the Fpga-synth
mailing list