Extension of ChooseCutProc using Charles Ames' method of statistical feedback to control state selection. The essential auxilliary class is StatBalNormStream. This version changes weightings during the phrase itself so as to give changing structure to phrasing. Because weights may temporarily go to zero, the normalisation version of statistical feedback is essential. See StatBalProc for comparison.
The technique of changing weightings is more noticeable than the influence of statistical feedback. See the examples below for a comparison. Set heterogeneity high to simulate Lehmer style dispersion characteristics.
For additional data on the algorithm see Nick Collins, "Further Automatic BreakBeat Cutting Methods", Proceedings of Generative Art 2001, reproduced at http://www.cus.cam.ac.uk/~nc272/.
cutarray |
An array of 3 arrays of form [ [states], [startweights], [endweights ] ] where the states are the possible cutsizes, and the start weights are those for the beginning of the phrase, the endweights for the end. Linear interpolation is use internally to work out intermediate weights. The endweights are reached at beat position currphraselength=rollallowed. The three arrays must obviously be of the same size. |
repeatarray |
As cutarray for the repeats parameter. |
chet |
heterogeneity for the StatBalNormStream that will be created from the cutarray. |
rhet |
heterogeneity for the StatBalNormStream that will be created from the cutarray. |
phraselength |
Next length of phrase in beats. |
rollchance |
A probability of a roll near the end of a phrase. |
rollallowed |
number of beats within sight of the end of the current phrase within which a roll is permissible. Further, position at which final weightings for a phrase will be acheived. |
bpsd |
beats per sub division. Sets a primitive cut size resolution for choose offset messages. |
You should substitute your own break sample to hear the effects of this cut procedure more clearly.