[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