*** empty log message ***
[chuck-blob.git] / exile / v1 / examples / powerup.ck
blob0b2b55d3940c8ec9573857217f4c2b56f43da06e
1 // power up!
2 // - philipd
4 0.0 => float t;
5 noise n;
7 // timer shred
8 fun void timer() { 
9     while ( true ) { 
10         t + 0.01 => t;
11         10::ms => now;
12     }
15 // spork the timer
16 spork ~ timer();
18 // sweep shred
19 fun void sweep( float st, float inc, float end , int c)
21     n => TwoPole z => dac; 
22     1  => z.norm;
23     0.1 => z.gain;
24     t => float st;
25     st => float frq;
26     std.rand2f ( 0.94, 0.99 ) => z.radius;
27     while ( t < end ) {
28         math.max ( ( t - st ) * 4.0, 1.0 ) * 0.1  => z.gain; 
29         frq + inc * -0.02  => frq; 
30         frq => z.freq;
31         10::ms => now;
32     }
33     n =< z;
34     z =< dac;
37 0 => int c;
38 // time loop
39 while ( true ) { 
40     500::ms => dur d;
41     if ( std.rand2 ( 0, 10 ) > 3 ) d * 2.0 => d;
42     if ( std.rand2 ( 0, 10 ) > 6 ) d * 3.0 => d;
43     spork ~ sweep( 220.0 * (float)std.rand2(1,8), 
44         880.0 + std.rand2f(100.0, 880.0), t + std.rand2f(1.0, 3.0) , c);
45     1 + c => c; 
46     d => now;