One of the greatest features i overlooked at first is the envelope each oscilator has. For static operation i set Atck and Dec to 0 and control volume with Sustain to balance the sound.
With Attack it is possible to fade in each individual oscilator. Very cool!
The osc will fade in to maximum level and then decay to sustain. Also very cool effects!
But often i would find it very useful if the osc could fade in to sustain-level without rising to maximum amplitude first.
So that the voice would fade in softly to a defined level and blend in with the others.
Like you have a Triangle wave and want to fade in just a bit of saw. With the ADSR function it will go “WHEII” first and then settle. Very nice with arpegiators…
I definitly like having both options!
In the analog world of an envelope generator i can flip one resistor on an comparator. Then it compares the charging of the capacitor with the sustain voltage instead of a (max level) reference and stops the charging as soon as sustain is reached. I call that ASR
In the ADSR the comparator will let the cap charge to that max level and then release it to discharge down to sustain.
Attack and Decay (and Release) are simple variable resistors, acting as a bottleneck for the current, making the charging and discharging take some time.
I wonder, in code, will this be much more complicated than that? Simply wiring in a switch to change a constant for a variable
max attack level = 0F
or:
max attack level = sustain level
Or is this simply impossible because the osc-envelopes are inside the sid and not generated by the software?