*** empty log message ***
[chuck-blob.git] / examples / band-o-matic.ck
blob3c9bda91830737f8d0b8e224979b607a82f193af
1 // banded waveguide sample
3 BandedWG band => JCRev r => dac;
5 0.95 => band.gain;
6 1 => band.preset;
7 std.mtof( (float)( 21 + std.rand2(0,3) * 12 + 7 ) ) => band.freq;
8 .8 => r.gain;
9 .1 => r.mix;
10 // our main loop
11 while( true )
12 {    
13     std.rand2f( 0.1, 0.9 ) => band.bowRate;
14     std.rand2f( 0.2, 0.35 ) => band.bowPressure;
15     std.rand2f( 0.6, 0.8 ) => band.startBowing;
17     if( std.randf() > 0.7 )
18     { 1000::ms => now; }
19     else if( std.randf() > .7 )
20     { 500::ms => now; }
21     else if( std.randf() > 0.2 )
22     { .250::second => now; }
23     else
24     {
25         0 => int i;
26         4 * std.rand2( 1, 4 ) => int pick;
27         0 => int pick_dir;
28         0.0 => float pluck;
29         std.rand2f( 50.0, 200.0 ) => float d;
31         for( ; i < pick; i++ )
32         {
33             std.rand2f(.4,.6) + (float)i*.35/(float)pick => pluck;
34             pluck + 0.1 * (float)pick_dir => band.pluck;
35             !pick_dir => pick_dir;
36             d::ms => now;
37         }
38     }
40     if ( std.randf() > 0.2 ) { 
41         1::second => now;
42         0.001 => band.stopBowing;
43         0.5::second * (float) std.rand2(1,3) => now;
45         // pentatonic
46         2 * std.rand2( 0, 4 ) => int freq;
47         if( freq == 6 ) 7 => freq;
48         if( freq == 8 ) 9 => freq;
49         std.mtof( (float)( 21 + std.rand2(0,5) * 12 + freq ) ) => band.freq;
50         if ( std.randf() > 0.7 ) 
51             std.rand2(0,3) => band.preset;
52     }