4 array.asArray.do({ arg val, i;
5 if (sum.isNil, { sum = val },{ sum = sum + val });
9 // support this common idiom
10 *fill { arg n, function;
13 val = function.value(i);
14 if (sum.isNil, { sum = val },{ sum = sum + val });
23 *ar { arg input, numChannels = 2, mixdown = true;
25 if(input.size > 1) { // collection
27 .clump(input.size / numChannels)
28 .collect { arg chan, i;
40 // single ugen or single item collection
41 if(input.isSequenceableCollection) {
45 if(numChannels == 1) {
48 ^Array.fill(numChannels, input)