40 lines
986 B
Text
40 lines
986 B
Text
|
class:: TWChoose
|
||
|
summary:: Randomly select one of several inputs
|
||
|
categories:: UGens>Triggers, UGens>Random
|
||
|
related:: Classes/TChoose
|
||
|
|
||
|
description::
|
||
|
An output is selected randomly on receiving a trigger from an array of inputs.
|
||
|
|
||
|
the code::weights:: of this choice are determined from the weights array.
|
||
|
|
||
|
If code::normalize:: is set to 1 the weights are continuously normalized (this is an extra overhead) when using fixed values the code::normalizeSum:: method can be used to normalize the values.
|
||
|
|
||
|
TWChoose is a composite of link::Classes/TWindex:: and link::Classes/Select::.
|
||
|
|
||
|
classmethods::
|
||
|
method:: ar, kr
|
||
|
|
||
|
argument:: trig
|
||
|
argument:: array
|
||
|
argument:: weights
|
||
|
argument:: normalize
|
||
|
|
||
|
examples::
|
||
|
code::
|
||
|
(
|
||
|
{
|
||
|
var a;
|
||
|
a = [
|
||
|
SinOsc.ar,
|
||
|
Saw.ar,
|
||
|
Pulse.ar
|
||
|
];
|
||
|
TWChoose.ar(Dust.ar(MouseX.kr(1, 1000, 1)), a, [0.99, 0.05, 0.05].normalizeSum) * 0.2
|
||
|
|
||
|
}.play;
|
||
|
)
|
||
|
::
|
||
|
|
||
|
note:: all the ugens are continuously running. This may not be the most efficient way if each input is cpu-expensive.::
|