www.96kHz.org
advanced audio recording
a 10 stage ADSR-style envelope generator in VHDL
  DSP Module

An extended VHDL-implementation of my envelope generator is used to control the sound in my audio synthesizer.
Unlike the former version the parameters ATACK and DECAY no have individual shapes to smooth the operation.
Both can be adjusted from linear to s-curve using special transition equations.
 


extended envelope curve - Jürgen Schuhmacher - 2006

 10 stages are used with variable parameters:

PreDelay (time offset at start)
AttackSpeed (inverted rise time)
AttackShape (L to S-curve)
Hold (time held at peak level)
DecaySpeed (inverted fall time to sustain level)
DecayShape (L to S-curve)
Sustain (level while the key is held down)
ReleaseSpeed (time to degrade)
RepeatLevel (0 ... 100%)
RepeatLimit (time limit)

The parameters including the PreDelay and Hold are used in similar way as we know it from the sound modules of EMU.

As a change the Attacks and Decays are used in inverted way as speeds to meet the other parameters concept. The smoothing option gives a more prestine way of modulation.

The formerly invented repetion function makes it possible to repeat an ADSR curve so one can trigger multiple notes, such as the pizzicato playing technique on violins or complex drum sounds. Also gunshot sounds can be created in this way. To control this, a volume level is set at which the envelope is repeated continously. Values below 100 per cent result in a decay letting the sound finally vanish. There is also a limit on the number of possible repetitions for a 100% use.



extended envelope curve with 10 parameters - JS 2006


For best operation the whole curve can be smoothed using a static and time independent filter. In the synthesizer, the envelope is updated with 96 kHz. The curcuit thus could operate 1024 curves / voices, LFOs or effect impacts.

 Read more about the algorithm  here: smoothing functions

 Read more about the FPGA-platform here: Gleichmann HPE Mini

 
Altera
Cyclone II
FPGA
 
96 kHz
Audio DSP

 

©  Dipl.-Ing. Jürgen Schuhmacher  2006