Prewrite expands an axiom by production rules to generate self-similar, non-random rhythmic sequences
An L-system consists of an alphabet of symbols, a collection of production rules that expand each symbol into a larger string, an initial axiom to begin from, and a way of translating the generated strings into structure. SuperCollider’s Prewrite class evaluates such rules inside a Pbind, expanding an axiom into duration sequences that are self-similar across scales — complex, yet not random, and hard to reach with plain random generators. The author was inspired by Renick Bell’s fractal beats. Using simple variations on one L-system across two tracks preserves the overall rhythmic integrity, with recognisable self-similar patterns recurring but with enough variation to stay interesting, giving a shared texture across drum voices.
Examples
Prewrite(1, (1: [1, 0.5, 0.5], 0.5: [0.5, 0.25, 0.25]), 3) expands to depth 3; drive kick and snare from the same axiom for a unified but varied texture.
Assessment
Explain what makes an L-system rhythm different from a Pwhite-generated one, and describe the trade-off between L-system depth and live spontaneity.