*** empty log message ***
[chuck-blob.git] / exile / v1 / examples / otf_05.ck
bloba59bc82fde803fc4a16f8f948ceca3be6bae118b
1 //----------------------------|
2 // on-the-fly synchronization
3 // adapted from Perry's ChucK Drummin' + Ge's sine poops
4 //
5 // authors: Perry Cook (prc@cs.princeton.edu)
6 //          Ge Wang (gewang@cs.princeton.edu)
7 // --------------------|          
8 // add one by one into VM (in pretty much any order):
9 // 
10 // terminal-1%> chuck --loop
11 // ---
12 // terminal-2%> chuck + otf_01.ck
13 // (anytime later)
14 // terminal-2%> chuck + otf_02.ck
15 // (etc...)
16 //--------------------------------------|
18 // synchronize to period
19 .5::second => dur T;
20 T - (now % T) => now;
22 sinosc s => gain g => dac;
23 .4 => g.gain;
25 while( true )
27     2 * std.rand2(0,4) => int freq;
28     if( freq == 6 ) 7 => freq;
29     if( freq == 8 ) 9 => freq;
31     std.mtof( 21.0 + (float)(std.rand2(0,3)*12 + freq) ) => s.sfreq;
32     .25::T => now;