39 lines
986 B
Text
39 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.::
|