fre 2007-08-03 klockan 05:53 +0900 skrev 2g:
oh maybe in the second way am just looping the 1st while only?
maybe it was a bit too early for me to ask things on the list (only i can do is modifying the tut)
Keep modifying! That's a very very good way to learn. And ask away, too.
i thought 100::ms => now; was something like "100msec later do ..." or "every 100msec do ..." but i happened to find that in () expression of while
About the code-chunks which have while ( 100::ms => now ) { /* code */ } in them... Well, they are using a bit more advanced syntax. it's short for: while(true) { 100::ms => now; //something } And about the time... "100::ms => now;" means that chuck will pause in the code for 100 ms and compute the audio. That's the only way to get any sound. And, yes, it means both "100msec later do ..." and "every 100msec do ...". When chuck gets to a "100::ms => now;" it will pause there (and make noise) until it continues 100 ms later. But if you got code that looks like this: SinOsc s => dac; 440.0 => s.freq; while(true) { 100::ms => now; Std.rand2f(110.0, 990.0) => s.freq; } you can say that "every 100msec do ...", because that's exactly what it's doing.
mmm i'll go through a bit more ahead in the manual yes then i'll find Blit-UGen waiting for me?
Well, actually.. I don't really know how far you've gotten in the manual, but I would recommend that you play with ugens at the same time as you go through it. When you think you know the most importnat, and can write a basic patch without looking in the manual, you can start to let go of it. By the way, the ugens isn't even IN the manual. They are collected on the ugen-reference page on the website. http://chuck.cs.princeton.edu/doc/program/ugen.html Hope that helps, Gasten