fun void beatgen( float base, float beat, float gain, int minutes){ beat/2 => float half; base + half => float freq1; base - half => float freq2; SinOsc s1 => dac.left; gain => s1.gain; SinOsc s2 => dac.right; gain => s2.gain; freq1 => s1.freq; freq2 => s2.freq; minutes::minute => now; } fun void raindistance( float gain, int minutes){ while(true){ Noise n => BPF b => LPF l => JCRev r => dac; n.gain(gain); l.freq(10000.0); b.Q(8); b.freq( 880.0);r.mix(.1); minutes::minute=> now; } } fun void raindrops(int rainfreq, float dropvolume){ Impulse i => BPF bpf => LPF lpf => JCRev r => dac; SinOsc n => bpf; 20.0 => n.freq; n.gain(dropvolume); bpf.Q (10); r.mix(.1); while (true) { lpf.freq (100 * (5 +maybe+maybe+maybe+maybe+maybe)); bpf.freq (500*(5+maybe+maybe+maybe+maybe+maybe+maybe+maybe+maybe)); i.next (10*(maybe+maybe+maybe+maybe)); (rainfreq+maybe+maybe+maybe+maybe+maybe+maybe+maybe+maybe) *5::ms => now; } } fun void rainforground() { Impulse i => BPF bpf => LPF lpf => dac; SqrOsc n => bpf; 3000.0 => n.freq; n.width(1.5); n.gain(.3); bpf.Q (15); while (true) { lpf.freq (50 * (5 +maybe+maybe+maybe+maybe+maybe)); bpf.freq (80*(5+maybe+maybe+maybe+maybe+maybe+maybe+maybe+maybe)); i.next (10*(maybe+maybe+maybe+maybe)); (1+maybe+maybe+maybe+maybe+maybe+maybe+maybe+maybe)*100::ms => now; } } spork ~ rainforground(); spork ~ raindistance(.3,5); spork ~ beatgen(80, .9, 0.1, 1); spork ~ raindrops(5, 1.0 ); while(true){ 100::ms => now;}