72 lines
1.1 KiB
Text
72 lines
1.1 KiB
Text
class:: Select
|
|
summary:: Select output from an array of inputs.
|
|
categories:: UGens>Multichannel>Select
|
|
related:: Classes/SelectX, Classes/SelectXFocus, Classes/LinSelectX
|
|
|
|
Description::
|
|
The output is selected from an array of inputs.
|
|
|
|
note:: All the UGens are continuously running. This may not be the most efficient
|
|
way if each input is CPU-expensive. ::
|
|
|
|
Note that the array is fixed at the time of writing the SynthDef, and the
|
|
whole array is embedded in the SynthDef file itself. For small arrays
|
|
this is more efficient than reading from a buffer.
|
|
|
|
|
|
classmethods::
|
|
|
|
method::ar, kr
|
|
|
|
argument::which
|
|
|
|
Integer index
|
|
|
|
|
|
argument::array
|
|
|
|
Input array of signals
|
|
|
|
|
|
Examples::
|
|
|
|
code::
|
|
(
|
|
SynthDef("help-Select",{ arg out=0;
|
|
|
|
var a,cycle;
|
|
a = [
|
|
SinOsc.ar,
|
|
Saw.ar,
|
|
Pulse.ar
|
|
];
|
|
cycle = a.size * 0.5;
|
|
Out.ar(out,
|
|
Select.ar(LFSaw.kr(1.0,0.0,cycle,cycle),a) * 0.2
|
|
)
|
|
}).play;
|
|
|
|
)
|
|
|
|
//Here used as a sequencer:
|
|
(
|
|
SynthDef("help-Select-2",{ arg out=0;
|
|
|
|
var a,s,cycle;
|
|
a = Array.fill(32,{ rrand(30,80) }).midicps;
|
|
a.postln;
|
|
cycle = a.size * 0.5;
|
|
|
|
s = Saw.ar(
|
|
Select.kr(
|
|
LFSaw.kr(1.0,0.0,cycle,cycle),
|
|
a
|
|
),
|
|
0.2
|
|
);
|
|
Out.ar(out,s )
|
|
}).play;
|
|
)
|
|
|
|
::
|
|
|