(define resolve (lambda (rate u) (cond ((procedure? u) (u rate)) ((rsc3:mce? u) (rsc3:make-mce (map (lambda (u) (resolve rate u)) (rsc3:mce-channels u)))) ((number? u) u) (else (error "resolve" "illegal input" rate u))))) (define nil-id (rsc3:make-uid 0)) (define make-rsce-ugen (lambda (name special inputs mce? outputs id) (lambda (rate) (rsc3:construct-ugen name rate (map (lambda (i) (resolve rate i)) inputs) (if mce? (resolve rate mce?) #f) outputs special id)))) (define build (lambda (u) (u rsc3:ar))) (define mce2 rsc3:mce2) (define mce3 rsc3:mce3)