rsc3/doc-schelp/HelpSource/Classes/TWindex.scrbl

101 lines
1.5 KiB
Text
Raw Permalink Normal View History

2022-08-24 13:53:18 +00:00
#lang scribble/manual
@(require (for-label racket))
@title{TWindex}
Triggered windex.@section{categories}
UGens>Random, UGens>Triggers
@section{description}
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).
@section{classmethods}
@section{method}
ar, kr
@section{argument}
in
The trigger. Trigger can be any signal. A trigger happens when
the signal changes from non-positive to positive.
@section{argument}
array
The list of probabilities.
@section{argument}
normalize
Controls whether to normalize the probability values.
@section{Examples}
@racketblock[
//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]);
::
]