// patch SinOsc mod => SinOsc car => ADSR e => JCRev r => dac; 500 => mod.gain; 2 => car.sync; // reverb .05 => r.mix; // modulator/carrier ratio 1.5 => float ratio; // set envelope e.set( 2::ms, 2::ms, .5, 10::ms ); // play play( 72, .9, 200::ms ); play( 74, .5, 200::ms ); play( 76, .7, 200::ms ); play( 77, .4, 200::ms ); play( 79, .9, 200::ms ); play( 77, .4, 200::ms ); play( 75, .7, 200::ms ); play( 74, .4, 200::ms ); play( 72, .9, 400::ms ); // for reverb 2::second => now; fun void play( float pitch, float vel, dur T ) { // set frequency pitch => Std.mtof => car.freq; // set modulator car.freq() * ratio => mod.freq; // open env e.keyOn(); // through sustain T - e.releaseTime() => now; // close env e.keyOff(); // release e.releaseTime() => now; }