[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sc-users] More dumb stream questions
I'm making some progress with my little In C Xmas project, but questions keep popping up.
I want to iterate over an array of patterns, but I can't figure out how to construct a do loop that's doesn't make everyrhing happen at once:
(
var inC;
inC= Array.newClear(54);
just in case you don't know, arrays in sc are indexed beginning with 0 not 1.
inC[1] = Pbind( // pattern1
\instrument, "fmgen_a_" ++ 35.rand,
[\dur], Pseq([[60, 0.1],[64, 0.4]], 3)], {1 + 10.rand})
);
inC[2] = Pbind( // pattern2
\instrument, "fmgen_a_" ++ 35.rand,
[\dur], Pseq([[60, 0.05],[64, 0.245], [65, 0.25], [64, 0.5]])], {1 + 10.rand})
);
inC[3]= Pbind(
\instrument, "fmgen_a_" ++ 35.rand,
[\dur], Pseq([[\, 0.25],[64, 0.25], [65, 0.25], [64, 0.25]])], {1 + 10.rand}) ); // any symbol is a rest, like \ or whatever
// Pseq([inC[1], inC[2], inC[3]]).play; // This works OK, p[1]1 is played, finishes, p[2] plays etc.
inC.do{arg item; item.play} // but how do I do this? The 54 patterns happen at once,
)
you need to embed your do loop in a Task or Routine.
Task({
inC.do({ arg item;
...
t.wait;
})
}).play;
I tried inserting Pseq somewhere in the do loop, to no avail.
Help much appreciated. I promise I will make a proper microtonal version in return...
Cheers,
Zip _______________________________________________
sc-users mailing list
sc-users@xxxxxxxxxxxxxxx
http://www.create.ucsb.edu/mailman/listinfo/sc-users