A waveform kept as a list of knum breakpoints, one per
control point of the cycle. Each breakpoint remembers its own amplitude and steps from
there, so the shape drifts instead of repeating, while a frequency list moves the pitch
once per cycle. The waveform is written point by point; nothing is filtered, and there
is no oscillator underneath.
The dial is stiffness. At 0 every breakpoint walks
freely from where it was, which is the Xenakis breakpoint-walk lineage. At 1 each one
is pulled all the way onto a fixed template, which is a waveform selected rather than
walked. In between, the walk is reeled in toward the template without reaching it.
The top panel draws both, so the dial is visible as well as audible.
Start with the gain low.
Reading the controls.
templateType 0–4 is sine, saw, triangle, square, flat; flat means the
walk has no attractor even at full stiffness. ampDist 0–6 is linear,
Cauchy, logistic, hyperbolic cosine, arcsine, exponential, sinus, which is the
distribution set from Xenakis's dynamic stochastic synthesis; ampDistParam
shapes it. seqMode 0–3 is forward, reverse, pingpong, random, and steps
the frequency list once every repeats cycles.
One difference from the UGen: here knum rebuilds the
breakpoint memory live. In SuperCollider it is fixed when the synth is built, which is
why fern's knumFrom/knumTo only bite on the next
~gen.(\fern).