File: TWChoose.schelp

package info (click to toggle)
supercollider 1%3A3.7.0~repack-4%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 34,364 kB
  • sloc: cpp: 197,140; ansic: 72,013; lisp: 63,505; sh: 14,009; python: 1,992; perl: 766; makefile: 679; java: 677; xml: 326; yacc: 309; lex: 175; ruby: 173; objc: 65
file content (39 lines) | stat: -rw-r--r-- 985 bytes parent folder | download | duplicates (2)
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
class:: TWChoose
summary:: Randomly select one of several inputs
categories:: UGens>Triggers, UGens>Random
related:: Classes/TChoose

description::
An output is selected randomly on recieving 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 continously running. This may not be the most efficient way if each input is  cpu-expensive.::