Add ADSDR and ASDSDR envelopes

I’d love to add 2 extra envelopes, as the combined envelope controls are very useful.

One is the ADSDR envelope. Same as ASDR, but the sustain can be set to decay, giving the envelope a fourth slope.

There’s some quirks on my Yamaha TX81Z with this envelope (not called ADSDR, but let’s stick with convention). One is that some of the ranges go the opposite direction (e.g. the fastest attack is 31, the slowest attack is 0). So to make this work there would need to be a way to reverse/invert the ranges.

Also, the 2nd decay never goes above the sustain level (unlike some envelopes where the sound could get louder at that stage).

Then there’s the ASDSDR envelope. I have this on my Waldorf microQ. It’s the same as the DX7 envelope, but without the final level parameter.

It might be an idea to make one complex generic envelope with which several variants can be configured. For this to work the following is needed:

  • set the time based parameters on Time or on Rate
  • allow each of the parameters to be set on a constant and then be disabled
  • allow levels to be negative

The eg should have the following 10 parts:

  • delay
  • starting level
  • attack
  • attack level
  • decay
  • break point
  • slope
  • sustain
  • release
  • release level

This generic EG is then useful for time as well as rate based synths like the DX7. By giving two levels the same parameter number you can also create a Hold phase like needed on Moog synths.
The attack level is needed for Korg style pitch EG’s.
The release level appears on Korg’s filter EG’s f.i. The 03/RW


All this is basically ready, plus many other things, such as multitouch, support for more colours. These are part of the future upgrade, most likely version firmware v3.x. Unfortunately, the global shortage of components got us to the point when we had to start designing E1 running on different CPU. I want to release that upgrade after we have new hardware prototypes ready and the firmware 3.x is validated to run on both hardware platforms. I would like to prevent situation when I have to maintain two firmwares with different feature sets.