File: TWindex.schelp

package info (click to toggle)
supercollider 1%3A3.10.0%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 45,496 kB
  • sloc: cpp: 283,513; lisp: 74,040; ansic: 72,252; sh: 23,016; python: 7,175; makefile: 1,087; perl: 766; java: 677; yacc: 314; lex: 175; ruby: 136; objc: 65; xml: 15
file content (79 lines) | stat: -rw-r--r-- 1,407 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
class:: TWindex
summary:: Triggered windex.
categories:: UGens>Random, UGens>Triggers


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).


classmethods::

method::ar, kr

argument::in

The trigger. Trigger can be any signal. A trigger happens when
the signal changes from non-positive to positive.


argument::array
The list of probabilities.

argument::normalize
Controls whether to normalize the probability values.

Examples::

code::

//assuming normalized values
(
a = SynthDef("help-TWindex", { |out, w1=0.0, w2=0.5, w3=0.5|
	var trig = Impulse.kr(6);
	var index = TWindex.kr(trig, [w1, w2, w3]);
	Out.ar(out,
		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", { |out, w1=0.0, w2=0.5|
	var trig = Impulse.kr(6);
	var index = TWindex.kr(
		trig,
		[w1, w2, SinOsc.kr(0.3, 0, 0.5, 0.5)],//modulate probability
		1 //do normalisation
	);

	Out.ar(out,
		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]);

::