28 lines
844 B
Racket
28 lines
844 B
Racket
#lang scribble/manual
|
|
@(require (for-label racket))
|
|
|
|
@title{(tw-choose trig array weights normalize)}
|
|
|
|
|
|
The output is selected randomly on recieving a trigger from an
|
|
array of inputs. The weights of this choice are determined from
|
|
the weights array. If normalize is set to 1 the weights are
|
|
continuously normalized, which means an extra calculation overhead.
|
|
When using fixed values the normalizeSum method can be used to
|
|
normalize the values. TWChoose is a composite of TWindex and
|
|
select
|
|
|
|
|
|
@racketblock[
|
|
(let ((a (mce3 (sin-osc ar 220 0)
|
|
(saw ar 440)
|
|
(pulse ar 110 0.1)))
|
|
(t (dust ar (mouse-x kr 1 1000 1 0.1)))
|
|
(w (mce3 0.6 0.15 0.05)))
|
|
(audition (out 0 (mul (tw-choose t a w 1) 0.1))))
|
|
]
|
|
|
|
Note: all the ugens are continously running. This may not be the
|
|
most efficient way if each input is cpu-expensive.
|
|
|
|
|