[chuck-users] can there be many ::ms in while?

Martin Ahnelöv operagasten at gmail.com
Fri Aug 3 04:48:07 EDT 2007

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,

> 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

while(true) {
	100::ms => now;

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.

Hope that helps,

More information about the chuck-users mailing list