PlazyEnvirN instantiate new patterns from a function

superclass: PlazyEnvir

Evaluates a function that returns a pattern and embeds it in a stream.

In difference to Plazy, the function is evaluated using the environment passed in by the stream.

In difference to PlazyEnvir, PlayzEnvirN expands to multiple parallel patterns if the function arguments

receive multiple channels. In difference to PlazyEnvir, this works only with event streams.

PlazyEnvirN(func)

func: A function that returns a pattern or any other valid pattern input

// example

(

SynthDef(\help_sinegrain,

{ arg out=0, freq=440, sustain=0.05, pan=0;

var env;

env = EnvGen.kr(Env.perc(0.01, sustain, 0.2), doneAction:2);

Out.ar(out, Pan2.ar(SinOsc.ar(freq, 0, env), pan))

}).add;

a = PlazyEnvirN({ arg g=0, h=0, dur=1;

postf("g: %, h: %, dur: %\n", g, h, dur);

Pbind(

\instrument, \help_sinegrain,

\dur, dur,

\degree, Pseq([g, g, h, g, h], 2)

)

});

);

// different variants

(a <> (g: 0, h: 3, dur:0.2)).play; // single stream

(a <> (g: [0, 4], h: [3, -1], dur:0.2)).play; // same durations, two streams

(a <> (g: [0, 4], h: [3, -1], dur: [0.2, 0.3])).play; // different durations, two streams

// for more about the composition operator <> see: Pchain