From: Eugene Petkevich Date: Wed, 6 Dec 2023 22:16:00 +0000 (+0100) Subject: update array split X-Git-Url: https://git.zuelum.org/?a=commitdiff_plain;h=a39ad26c0fdefaf47918fccef44e2e957e6bf862;p=scprojects.git update array split --- diff --git a/extensions/classes/splitters.sc b/extensions/classes/splitters.sc index 4fe3a7d..9961448 100644 --- a/extensions/classes/splitters.sc +++ b/extensions/classes/splitters.sc @@ -1,11 +1,11 @@ + 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); @@ -21,4 +21,29 @@ 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