#!r6rs (library (rsc3 supercollider in) (export audio-in) (import (rnrs) (rsc3 graphdef mce) (rsc3 graphdef rate) (rsc3 ugen operator) (rsc3 ugen oscillator) (rsc3 ugen specialized)) ;; Audio input. Does not support MulAdd. (define (consecutive? l) (let ((x (car l)) (xs (cdr l))) (or (null? xs) (and (= (+ x 1) (car xs)) (consecutive? xs))))) (define (audio-in n) (let ((offset (Sub NumOutputBuses 1))) (if (mce? n) (let ((l (mce-channels n))) (if (consecutive? l) (In (length l) ar (Add offset (car l))) (In 1 ar (Add offset n)))) (In 1 ar (Add offset n))))) )