// time 800::ms => dur T; T - (now % T) => now; // patch Noise s => LPF f => ADSR e => JCRev r => dac; // set envelope e.set( 5::ms, 5::ms, .2, 5::ms ); .02 => r.mix; T/4 => now; // infinite time loop int p; while( true ) { // play trigger( Std.rand2(4, 10)*12 => p, 110/p, 50::ms ); //p * 50.0 => f.freq; 1 + 20.0/p => f.Q; // wait 350::ms => now; } fun void trigger( float pitch, float vel, dur T ) { // trigger (pitch => Std.mtof)*2 => f.freq; vel => s.gain; // open e.keyOn(); // wait T - e.releaseTime() => now; // close e.keyOff(); // wait e.releaseTime() => now; }