update array split
authorEugene Petkevich <nasedil.genio.code@gmail.com>
Wed, 6 Dec 2023 22:16:00 +0000 (23:16 +0100)
committerEugene Petkevich <nasedil.genio.code@gmail.com>
Wed, 6 Dec 2023 22:16:00 +0000 (23:16 +0100)
extensions/classes/splitters.sc

index 4fe3a7d..9961448 100644 (file)
@@ -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);
   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