[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:

the Ptpar class would suit you i think. sadly no helpfile yet but it takes an array of offsets in seconds and what pbinds to play. note that it stops when any pbind returns nil so just make sure your patterns are infinitely long e.g. Pseq([Pseq(pattern), Pseq(pause)], inf)
good luck /f0

(
var inC;

inC= Array.newClear(3);

inC[0] =  Pbind( // pattern1
	\instrument, "fmgen_a_" ++ 35.rand,
[\midinote,\dur], Pseq([Pseq([[60, 0.1],[64, 0.4]], 3), Pseq([[\, 2]], 1)], 30) //repeat this 30 times then stop
	);
	
inC[1] = Pbind( // pattern2
	\instrument, "fmgen_a_" ++ 35.rand,
[\midinote,\dur], Pseq([Pseq([[60, 0.05],[64, 0.245], [65, 0.25], [64, 0.5]])], inf) //repeat inf
	);
	
inC[2]= Pbind(
	\instrument, "fmgen_a_" ++ 35.rand,
[\midinote,\dur], Pseq([Pseq([[\, 0.25],[64, 0.25], [65, 0.25], [64, 0.25]])], inf) //repeat inf
	);  // any symbol is a rest, like \ or whatever

Ptpar([0, inC[0], 5, inC[1], 10, inC[2]]).play; //offset, pbind, offset, pbind etc
)



(
var inC;

inC= Array.newClear(54);

inC[1] =  Pbind( // pattern1
	\instrument, "fmgen_a_" ++ 35.rand,
[\midinote,\dur], Pseq([Pseq([[60, 0.1],[64, 0.4]], 3)], {1 + 10.rand})
	);
	
inC[2] = Pbind( // pattern2
	\instrument, "fmgen_a_" ++ 35.rand,
[\midinote,\dur], Pseq([Pseq([[60, 0.05],[64, 0.245], [65, 0.25], [64, 0.5]])], {1 + 10.rand})
	);
	
inC[3]= Pbind(
	\instrument, "fmgen_a_" ++ 35.rand,
[\midinote,\dur], Pseq([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,
)


  #|
     fredrikolofsson.com     klippav.org
  |#