jrp Posted April 6, 2014 Report Share Posted April 6, 2014 (edited) 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? Edited April 6, 2014 by jrp Quote Link to comment Share on other sites More sharing options...
TK. Posted April 7, 2014 Report Share Posted April 7, 2014 Or is this simply impossible because the osc-envelopes are inside the sid and not generated by the software? Yes, (unfortunately) the OSC ADSRs are hardware implemented in the SID chip and can't be emulated via SW - this would solve many things, especially the infamous ADSR bug... Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
jrp Posted April 8, 2014 Author Report Share Posted April 8, 2014 I thought so (after writing my post). I also had a look at the datasheet of the sid, explains it as well. Well, would have been nice, but on the other hand having envelopes for each voice is great as it is. And limitations can be worked around. If i want the effect of a single voice fading in that can be done with long attack times. Especially in the studio when you can tweak the patch to match the notelength of a part. It interests me how you programmers are working. Am i on the right track that (if it were possible) you would make your code do something like this? max attack level = 0F or: max attack level = sustain level I only toyed a little bit with some of your code and i am really fascinated how these things work together. Only logic (and smart use of it) makes things happen. Not that i know any more about code than a little GW-Basic from when i was a child. Still logic can be very comforting... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.