SinOsc s1 => PRCRev g => dac; TriOsc s2 => g; TriOsc s3 => g; TriOsc s4 => g; .05 => float volume => g.gain; .5 => float volume2; .15 => g.mix; Std.mtof(77) => s1.freq; Std.mtof(73) => s2.freq; 6::second => now; Std.mtof(72) => s3.freq; 2::second => now; Std.mtof(68) => s4.freq; 2::second => now; Std.mtof(70) => s3.freq; Std.mtof(66) => s4.freq; while (volume < 1.3) { volume * 1.2 => volume; volume2 * 1.05 => volume2; s1.gain(volume2); s2.gain(volume) => s3.gain => s4.gain; 200::ms => now; } while (volume > .1) { volume * .9 => volume; volume2 * .95 => volume2; s1.gain(volume2); s2.gain(volume) => s3.gain => s4.gain; 200::ms => now; } Std.mtof(75) => s1.freq; 2::second => now; Std.mtof(68) => s1.freq; 2::second => now; Std.mtof(70) => s1.freq; Std.mtof(68) => s2.freq; Std.mtof(65) => s3.freq; Std.mtof(60) => s4.freq; while (volume < 1.3) { volume * 1.2 => volume; volume * 1.05 => volume2; s1.gain(volume2); s2.gain(volume) => s3.gain => s4.gain; 200::ms => now; } while (volume > .1) { volume * .85 => volume; volume * .95 => volume2; s1.gain(volume2); s2.gain(volume) => s3.gain => s4.gain; 200::ms => now; }