TWindex triggered windex
*kr(trig,array,normalize)
When triggered, returns a random index value based on array as a list of probabilities.
by default the list of probabilities should sum to 1.0, when the normalize flag is set to 1,
the values get normalized by the ugen (less efficient)
//assuming normalized values
(
a = SynthDef("help-TWindex",{ arg w1=0.0, w2=0.5, w3=0.5;
var trig, index;
trig = Impulse.kr(6);
index = TWindex.kr(trig, [w1, w2, w3]);
Out.ar(0,
SinOsc.ar(
Select.kr(index,[400, 500, 600]),
0, 0.2
)
)
}).play;
)
a.setn(0, [0,0,1].normalizeSum);
a.setn(0, [1,1,1].normalizeSum);
a.setn(0, [1,0,1].normalizeSum);
//modulating probability values
(
a = SynthDef("help-TWindex",{ arg w1=0.0, w2=0.5;
var trig, index;
trig = Impulse.kr(6);
index = TWindex.kr(
trig,
[w1, w2, SinOsc.kr(0.3, 0, 0.5, 0.5)],//modulate probability
1 //do normalisation
);
Out.ar(0,
SinOsc.ar(
Select.kr(index,[400, 500, 600]),
0, 0.2
)
)
}).play;
)
a.setn(0, [0,0]);
a.setn(0, [1,1]);
a.setn(0, [1,0]);
a.setn(0, [0,1]);