This help file is for the BBCut2 class. For an overview of the BBCut2 library, see BBCut.
BBCut2 provides the central scheduling mechanisms for algorithmic audio cutting running on an external clock.
BBCut2 is passed a cut renderer, an algorithmic cutting routine, and an optional quantisation routine. The clock is then passed in via play.
BBCut2 sends OSC messages ahead of rendering time to the Server so as to maintain perfect time lock without the jitter caused by variable network latency. This is superior to BBCut's 'send message at moment of decision' paradigm. The price is that the events during the next beat are determined a beat in advance and thus interaction with the cutting routines may show a beat or more's delay in response.
cutgroups |
an Array of CutGroups, though this argument can also cope with being passed a CutSynth directly, a single CutGroup, an Array of CutSynths and an Array of Arrays of CutSynths. Now, a proc can have multiple renderers. The CutGroup is a necessary abstraction to select the execution graph and bus requirements of SC3, and you can think of BBCut2 making Group Nodes on the Server for each distinct CutGroup (=cut synthesiser chain). |
proc |
an instance of a class derived from BBCutProc. This is the algorithmic composition routine that will generate cuts. |
quantiser |
An optional quantisation class which imposes a template on the output of the algorithmic cutter. Leave this nil for default behaviour. |
Frees any group and bus resources. If you passed in explicit Group and Bus objects they will not be deleted and are your own responsibility (see CutGroup).
Pause the bbcut2- it will not send further messages to the Server (but may have scheduled some already which can't be taken back).
Restart after a pause.
Stop playing, removing the cutter from the current clock.
Stop and free.
Start playing on a given clock.
clk |
A clock class derived from ExternalClock for the event scheduling. ExternalClock is a base class which wraps a TempoClock in SCLang. ServerClock is used for beat induction control from Server side UGens. If a TempoClock is passed in, it gets wrapped in an ExternalClock. If a bps is passed in (eg .play(2)) then a TempoClock is created at that bps and wrapped in an ExternalClock. |