+ Array {
split {|passes=1, weights=#[11, 10, 1]|
var arr = this;
- var nweights = weights.normalizeSum;
- passes.do{|i|
+ var nweights = weights.value.normalizeSum;
+ passes.value.do{|i|
var newArr = [];
arr.do{|val|
- var divider = Array.series(weights.size, 1).wchoose(nweights);
+ var divider = Array.series(nweights.size, 1).wchoose(nweights);
var newVal = val / divider;
divider.do{
newArr = newArr.add(newVal);
split {|passes=1, weights=#[11, 10, 1]|
^[this].split(passes=passes, weights=weights)
}
-}
\ No newline at end of file
+}
+
+/*
+Psplit : FilterPattern {
+ var <>passes, <>weights;
+ *new { arg pattern, passes=1, weights=#[11, 10, 1];
+ ^super.newCopyArgs(pattern, repeats, key)
+ }
+ storeArgs { ^[pattern, passes, weights] }
+ embedInStream { | event |
+ passes.value(event).do{|i|
+ event = pattern.embedInStream(event);
+ var newArr = [];
+ arr.do{|val|
+ var divider = Array.series(nweights.size, 1).wchoose(nweights);
+ var newVal = val / divider;
+ divider.do{
+ newArr = newArr.add(newVal);
+ };
+ };
+ arr = newArr;
+ };
+ ^event;
+ }
+}
+*/
\ No newline at end of file