73 lines
1.1 KiB
Text
73 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;
|
||
|
)
|
||
|
|
||
|
::
|
||
|
|