RecursiveCutProc1:
Filter:
BBCut/Classes (extension) | Libraries > BBCut > Cut procedures

RecursiveCutProc1
ExtensionExtension

Recursive breakbeat cutting, version 2

Description

This class implements explicit recursive cutting, as described in LMJ13. The level of recursion can be set as a parameter of the cut procedure. The user chooses cut, repeat and offset functions which are applied through successive iteratinos to make new cut sequences. Only the final cut sequence of a cut sequence of a cut sequence... is rendered.

For additional data on the algorithm see

Nick Collins, "Recursive Audio Cutting",

Leonardo Music Journal 13

Class Methods

.new

Create a RecursiveCutProc1 object with the given parameters.

Arguments:

cutfunc

A user specified function determining the next cut size, passed the arguments phrase length filled so far and current phraselength.

repeatfunc

A user specified function determining the number of repeats of the new cutsize, passed the arguments phrase length determined and current phraselength.

offsetfunc

A user specified function determining the offset for the new block, passed the arguments quantise level (= currphraselength/beats per sub division, so one 4/4 bar phrase with bpsd 0.5 gives quantise level of 8, ie eighth notes) ,current beats per sub division,phrase completed so far and current phrase length. The default method is

reclevel

Level of recursion, so 0 gives back the source exactly, 1 is one cutup, 4 is four recursive cutups. The higher the reclevel , the greater the performance hit at the start of the phrase. Outside realtime rendering is required for very high values, and the output will be increasingly set on one offset at a greatest common divisor cut size (see the paper for technical analysis). Notes however that the CPU cost is in the language app, not the server. In implicit cutting, the cost is in the Server.

phraselength

Next length of phrase in beats.

bpsd

beats per sub division.

Instance Methods

.initRecursiveCutProc1

Called internally after a new.

.chooseblock

this uses the setoffset method of BBCutSynth to specify offset jumps relative to the current phrase size. In normal use phrasesize will be the same as the beat length of the source you wish to cut up. Note that sources which don't respond to setoffset will not be effected by RecCutProc except for any enveloping/panning etc caused by blocks.

Examples