A flexible poly ADSR envelope generator. The timing of each stage can be controlled by a CV signal. The envelope can be reset using CV. Fast and slow attack, as well as polarity settings are also provided. These switches can be changed using a CV signal.