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

An VHDL-implementation of my envelope generator is used to control the sound in my audio synthesizer.



extended envelope curve - Jürgen Schuhmacher - 2005

 8 stages are used with variable parameters:

PreDelay (time offset at start)
AttackTime (rise time)
Hold (time held at peak level)
DecayTime (fall time to sustain level)
Sustain (level while the key is held down)
ReleaseSpeed (time to degrade)
RepeatLevel (0 ... 100%)
RepeatLimit (time limit)

The new invention is the repetion function. This method makes it possible, for the first time, to repeat an ADSR curve to trigger multiple notes, such as pizzicato on violins or complex drum sounds. Gunshot sounds can also be created in this way. To do this, a volume level is set at which the envelope is repeated. Values below 100 per cent result in a decay. There is also a limit on the number of possible repetitions.

PreDelay and Hold are used in similar way as we know it from the sound modules of EMU!


extended envelope curve with 8 parameters - JS 2005


For best operation the whole curve can be smoothed using a static filter.

extended envelope curve with 8 parameters - JS 2005


 In the S3-synthesizer, the envelope is updated with 48 kHz.
The curcuit therefore could operate the 1024 voices. In a 96kHz system 512 voices were possible.

 Read more about the algorithm  here: smoothing functions

 Read more about the platform here: Spartan 3 platform


 
Xilinx
Spartan 3
FPGA
 
48 kHz
Audio DSP

 

©  Dipl.-Ing. Jürgen Schuhmacher  2005