tor 2007-08-02 klockan 07:34 +0900 skrev 2g:
have just started coding on chuck was looking for way to let s1 have 3 overtones flying around him i know it should be something other than rand2f to handle integers but my q is about ::ms in while
i wonder which one of these are the right way to use them i thought the latter might be safe but it seems to give one never changing long note and maybe only one another is floating around but none of them give me an error
style one:
SinOsc s1 => PRCRev g => dac; SinOsc s2 => g; SinOsc s3 => g; SinOsc s4 => g; .25 => g.gain => g.mix; while( true ) { 500::ms => now; Std.rand2f(30.0, 220.0) => s1.freq; 170::ms => now; s1.freq() * Std.rand2f(8.0, 16.0) / 8.0 => s2.freq; 75::ms => now; s2.freq() * Std.rand2f(16.0, 32.0) / 16.0 => s3.freq; 111::ms => now; s2.freq() * Std.rand2f(16.0, 32.0) / 16.0 => s4.freq; }
style two:
SinOsc s1 => PRCRev g => dac; SinOsc s2 => g; SinOsc s3 => g; SinOsc s4 => g; .25 => g.gain => g.mix; while( true ) { 200::ms => now; Std.rand2f(30.0, 220.0) => s1.freq; } while( true ) { 170::ms => now; s1.freq() * Std.rand2f(8, 16) / 4.0 => s2.freq; } while( true ) { 75::ms => now; s2.freq() * Std.rand2f(16, 32) / 8.0 => s3.freq; } while( true ) { 111::ms => now; s2.freq() * Std.rand2f(16, 32) / 8.0 => s4.freq; }
Okey, I'm gonna teach you something about while-loops. A while loop will do whatever is in the brackets behind the statements until the expression inside the parenthesis is false. When it is false, it continues to the next thing after the close bracket (in your case the next while-loop). illustrated with chuck-code: 1 => int i; while (i < 10) { <<<i>>>; //print i i + 1 => i; } <<<"done">>>; Notice how it prints the numbers 1 to 9, and finally "done"? Now, look at your second example. Does the expression never return false? No, because you have hard coded "true" inside it. So, your first one should work as you want it, and your second won't. (Yes, you can advance time how many times as you want in whatever code-context you want) By the way, have you checked out the Blit-UGen? I think that one might satisfy your needs. Hope that helps, Gasten