A cut procedure simulating John Cage's 'square root' form, or something akin to recursive subdivision.
Create a CageCut object with the given parameters.
phraselength |
Choose a new phraselength. You can pass a function, which will be called at each new phrase. |
subdivfunc |
Anything that returns an array of subdivisions when .value is called on it. (This array is normalizeSummed so it always adds up to 1.0). These subdivisions are applied once recursively, ie if subdivfunc was [0.5,0.25,0.25] the output blocks would be phraselength*[[0.25,0.125,0.125],[0.125,0.0625,0.0625],[0.125,0.0625,0.0625]]. |
permutefunc |
A function which takes an array (being the cuts in a block) and returns some permutation of it. The default is just to return the input without any scrambling or other operations. |