1 // more music for replicants
4 Rhodey voc=> JCRev r => Echo a => Echo b => Echo c => dac;
10 1000::ms => a.max => b.max => c.max;
11 750::ms => a.delay => b.delay => c.delay;
12 .50 => a.mix => b.mix => c.mix;
14 // shred to modulate the mix
15 fun void vecho_Shred( )
26 Std.rand2f(0.0,1.0) => decider;
27 if( decider < .3 ) 0.0 => mix;
28 else if( decider < .6 ) .08 => mix;
29 else if( decider < .8 ) .5 => mix;
33 (mix-old)/1000.0 => inc;
38 old => a.mix => b.mix => c.mix;
42 Std.rand2(2,6)::second => now;
48 spork ~ vecho_Shred();
51 [ 0, 2, 4, 7, 9 ] @=> int scale[];
57 scale[Std.rand2(0,scale.cap()-1)] => int freq;
59 Std.mtof( ( 33 + Std.rand2(0,1) * 12 + freq ) ) => voc.freq;
60 Std.rand2f( 0.6, 0.8 ) => voc.noteOn;
62 if( Std.randf() > 0.7 )
64 else if( Std.randf() > .7 )
66 else if( Std.randf() > -0.8 )
67 { .250::second => now; }
71 2 * Std.rand2( 1, 3 ) => int pick;
75 for( ; i < pick; i++ )
77 Std.rand2f(.4,.6) + i*.035 => pluck;
78 pluck + -0.02 * (i * pick_dir) => voc.noteOn;
79 !pick_dir => pick_dir;