5 array.asArray.do({ arg val, i;
6 if (sum.isNil, { sum = val },{ sum = sum + val });
10 // support this common idiom
11 *fill { arg n, function;
14 val = function.value(i);
15 if (sum.isNil, { sum = val },{ sum = sum + val });
24 *ar { arg input, numChannels = 2, mixdown = true;
26 if(input.size > 1) { // collection
28 .clump(input.size / numChannels)
29 .collect { arg chan, i;
41 // single ugen or single item collection
42 if(input.isSequenceableCollection) {
46 if(numChannels == 1) {
49 ^Array.fill(numChannels, input)