Hello chucKsters, 

I am trying to write a simple program that reassigns four sine oscillator's pitch and volume at each iteration through a while(true) loop. 
I decided i didn't want the clicks at the beginning of each note attack, so I thought that I could remove them by just adding an envelope
to ramp up to the gain value for each event. After trying different values for the Envelope time and rate, I can't seem to figure out 
how to remove the clicks. I apologize as this is probably something obvious that I am blind to in my myopic state. My intuition is 
that if I increased the rate of the envelope the ramp up to 1 would be smoother and then my speakers wouldn't click. However I am 
unsure how to adjust the rate as I don't know what range it would be in. 

Sorry for my n00bishness

Ryan.

SinOsc s1 => Envelope e=> dac;
SinOsc s2 => e => dac;
SinOsc s3 => e=> dac;
SinOsc s4 => e=> dac;

//....

 while( true )
 {
  .1 => float t =>e.time;

  //reassign gain

  Std.rand2f(0,1) => float g;
  g => s1.gain;
  g => s2.gain;
  g => s3.gain;
  g => s4.gain;

  //reassign pitch

  Std.mtof(instrumentSet1[Std.rand2(0,6)]) => s1.freq;
  Std.mtof(instrumentSet1[Std.rand2(0,6)]) => s2.freq;
  Std.mtof(instrumentSet1[Std.rand2(0,6)]) => s3.freq;
  Std.mtof(instrumentSet1[Std.rand2(0,6)]) => s4.freq;

  //Advance time by 1 samp
  e.keyOn();
  1000::ms => now;
  e.keyOff();
}


--
"Le savant n’étudie pas la nature parce que cela est utile ; il l’étudie parce qu’il y prend plaisir et il y prend plaisir parce qu’elle est belle." - Henri Poincaré