PLser dynamic scope Pser variant 


Part of: miSCellaneous


Inherits from: PLseq


Takes Symbol args for later reference by the Streams, which will read from variables in the Environments of their instantiation. See PLx suite.


See also: Pser, PLseq, Event patterns and Functions, VarGui, VarGui shortcut builds



Creation / Class Methods


*new (list, repeats, offset, envir)

Creates a new PLser object.

list - Symbol or Pser list arg. 

If a Symbol is passed, list can be assigned to an envir variable later on.

This lists's elements can be dynamically replaced by Patterns or Streams.

repeats - Symbol or Pser repeats arg. Defaults to inf.

If a Symbol is passed, repeats can be assigned to an envir variable later on.

offset - Symbol or Pser offset arg. Defaults to 0.

If a Symbol is passed, offset can be assigned to an envir variable later on.

envir - Dictionary or one of the Symbols

\top, \t (topEnvironment), \current, \c (currentEnvironment).

Dictionary to be taken for variable reference. Defaults to \current.


Examples


(

s = Server.local;

Server.default = s;

s.boot;

)

(

// PLseq not used as proxy, only taken as it defaults to repeats = inf


p = Pbind(

\midinote, PLseq([PLser(\a, \r), 60, 61]),

\dur, 0.2

);


// prepare current Environment


~a = (67..70);

~r = 6;

)


x = p.play;



// replace repeats


~r = 3;



// replace array elements


~a[0] = [77, 93.5];


~a[2] = Pseq((94..96));



// replace whole array


~a = [55, 52];


x.stop;





//////////////////////



// placeholder may also get lists of event patterns


(

p = PLser(\a, 3);


~a = [ Pbind(

\midinote, Pwhite(60,65,3),

\dur, 0.1

),

Pbind(

\midinote, Pwhite(80,85,3),

\dur, 0.1

)

];


x = p.play;

)