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