#lang scribble/manual @(require (for-label racket)) @title{(dswitch index array)} demand rate generator for switching between inputs index - which of the inputs to return array - array of values or other ugens In difference to dswitch1, dswitch embeds all items of an input demand ugen first before looking up the next index. @racketblock[ (let* ((a0 (dwhite 2 3 4)) (a1 (dwhite 2 0 1)) (a2 (dseq 2 (make-mce (list 1 1 1 0)))) (i (dseq 2 (make-mce (list 0 1 2 1 0)))) (d (dswitch i (make-mce (list a0 a1 a2)))) (t (impulse kr 4 0)) (f (mul-add (demand t 0 d) 300 400)) (o (mul (sin-osc ar f 0) 0.1))) (audition (out 0 o))) ] compare with dswitch1 @racketblock[ (let* ((a0 (dwhite 2 3 4)) (a1 (dwhite 2 0 1)) (a2 (dseq 2 (make-mce (list 1 1 1 0)))) (i (dseq 2 (make-mce (list 0 1 2 1 0)))) (d (dswitch1 i (make-mce (list a0 a1 a2)))) (t (impulse kr 4 0)) (f (mul-add (demand t 0 d) 300 400)) (o (mul (sin-osc ar f 0) 0.1))) (audition (out 0 o))) ]