Pfin limit number of events embedded in a stream

superclass: FilterPattern

Pfin(count, pattern)

embeds count elements of the pattern into the stream

Note: Pfin is intended for event patterns. After the count elements are embedded, the stream is called with a nil input value so that Pmono, Pfx and others can release resources. Ordinary value patterns should not be called in this case, so for value patterns, you should use Pfinval instead.

(

var a, b;

a = Pfin(5, Pseq(#[1, 2, 3],inf));

b = a.asStream;

9.do({ b.next.postln; });

)

Pfin used as a sequence of pitches

(

SynthDef(\help_sinegrain,

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

var env;

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

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

}).add;

)

(

var c, b;

c = Pn(Pfin({ rrand(3, 5)}, Pseq([1, 2, 3, 4, 5, 6],inf)*4+65),inf);

b = c.asStream;

Routine({

loop({

Synth(\help_sinegrain, [\freq, b.next.midicps]);

0.12.wait;

})

}).play;

)