Other than Pseq(Array.rand(), inf) [MIDIOut]

Plazy can also produce Event Patterns, so you can do

(
p = Pn(Plazy {
	Pbindef(\test,
		\dur, rrand(0.07, 0.25),
		\midinote, Pseq((50..90).scramble.keep(rrand(3, 5)), rrand(2, 5)) 
	)
}, 20).play	
)

Another option would be this, but a bit more clumsy:

(
p = Pbindef(\test,
	\seqLength, Pwhite(2, 4),
	\seqRep, Pwhite(2, 5),
	// take over values from current Event in the Plazy
	\dur, Pn(Plazy { |e| Pn(rrand(0.07, 0.25), e[\seqLength] * e[\seqRep]) }),
	\midinote, Pn(Plazy { |e| Pseq((50..90).scramble.keep(e[\seqLength]), e[\seqRep]) })
).play	
)

In principle yes. Sorry, no time atm to work out an example, but the scheme could be this:

~template = Pbind(...);

~noteOn = Pbind(
    \type, \midi,
    \midicmd, \noteOn
	...
);

~prgChange = Pbind(
    \type, \midi,
    \midicmd, \program
	...
)

Ppar([~noteOn <> ~template, ~prgChange <> ~template])

<> stands for Pchain.

See these two threads for related discussions:

1 Like