This cut procedure provides an intermediate level of hierachy between a phrase and a block. A motif is a short rhythmic cell, represented by nested arrays. A block is taken an array of cuts, for example:
being three repeats of 1.0 beats. A motif is an array of blocks:
This Motif then lasts 6.5 beats in total.
The MotifCutProc is passed an array of Motifs, so a twice nested array. An indexing function is also passed as the second argument, for selecting the next Motif. If the Motifs don't fit within a phrase, the last rhythmic value is shortened to fit.
For additional data on the algorithm and its use under interactive evolution see
Nick Collins, "Interactive Evolution of Breakbeat Cut Sequences",
Proceedings of Cybersonica 2002
reproduced at http://www.cus.cam.ac.uk/~nc272/
Create a MotifCutProc object with the given parameters.
Converts a string in a particular form into a Motif. Used for entering Motifs in a StringDialog in live coding. The class method returns a Motif. The form uses integers and the the letter 'r' for repeats, and ignores all else. For example
It would then be converted into beats, by a multiplier like 0.5, 0.25.
This method is unnecessary since you can go "[1.5]".interpret...
Called internally after a new.