just to chime in here - i'm VERY new to programming. how do you create this kind of concurrency? if, say, you wanted to create two while loops, but wanted them to run "side-by-side", but looping at different speeds, how would you do it?
for example:
while (true){ do something; 100::ms => now;}
and
while (true) {do something else; 150::ms => now;}
cheers
> Date: Fri, 3 Aug 2007 05:53:57 +0900
> From: electriclightheads@gmail.com
> To: chuck-users@lists.cs.princeton.edu
> Subject: Re: [chuck-users] can there be many ::ms in while?
>
> 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)
> 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
>
> mmm
> i'll go through a bit more ahead in the manual
> yes
> then i'll find Blit-UGen waiting for me?
>
> On 8/2/07, Martin Ahnelöv <operagasten@gmail.com> wrote:
> > 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
> >
> > _______________________________________________
> > chuck-users mailing list
> > chuck-users@lists.cs.princeton.edu
> > https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
> >
>
>
> --
> 2g
> http://micro.ispretty.com
> _______________________________________________
> chuck-users mailing list
> chuck-users@lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Are you the Quizmaster? Play BrainBattle with a friend now!