*** empty log message ***
[chuck-blob.git] / exile / fmfriends.ck
blob6d616b96c4b7984af52631399ba2ba920651163b
1 // dut dut dut dut dut dut doot doot doot doot doot doot doot
3 FMVoices left=> gain g => dac ;
4 PercFlut  right=> gain g2 => dac ;
7 0.7 => left.gain;
8 0.7 => right.gain;
10 0.3 => g.gain;
11 0.5 => g2.gain;
12 0.2 => float mag;
13 333::ms => dur onebeat;
14 onebeat * 0.75 => dur notehold;
15 onebeat * 0.25 => dur noterest;
17 0.0 => float transp;
19 fun void fingers( float ln, float rn ) { 
20         std.rand2f(0.0, 0.90 ) => left.spectralTilt;
21         std.mtof(transp + ln) => left.freq;
22         mag => left.noteOn;
23         std.mtof(transp + rn) => right.freq;
24         mag => right.noteOn;
25         notehold => now;
26         0.5 => left.noteOff;
27         0.5 => right.noteOff;
28         
31 0 => int i;
32 // our main loop
33 while( true )
36         //6x f, g    65 67
37         for ( 0=>i ; i < 6 ; i++ ) { 
38                 fingers(65.0, 67.0);
39                 noterest => now;
40         }
42         //6x e, g    64 67
43         for ( 0=>i ; i < 6 ; i++ ) { 
44                 fingers(64.0, 67.0 );
45                 noterest => now;
46         }
48         //6x d, b    62 71
49         for ( 0=>i ; i < 4 ; i++ ) { 
50                 fingers(62.0, 71.0 );
51                 noterest => now;
52         }
54         fingers(62.0, 69.0 );
55         noterest => now;
56         fingers(62.0, 71.0 );
57         noterest => now;
59         //4x  c, c    60 72
60         for ( 0=>i  ; i < 4 ; i++ ) { 
61                 fingers(60.0, 72.0 );
62                 noterest => now;
63         }
65         if ( std.rand2(0, 4) > 2 ) {            
66                 12 * std.rand2( -2, 1 ) => int freq;
67                 onebeat * 2.0 => now;
68                 1::second / (float) std.rand2(2,4)  => onebeat;
69                 onebeat * 0.75 => notehold;
70                 onebeat * 0.25 => noterest;
71                 (float)freq => transp;
72         }
73         else { 
74                 // d,b 
75                 fingers(62.0, 71.0 );
76                 noterest => now;
78                 // e,a
79                 fingers(64.0, 69.0 );
80                 noterest => now;
81         }