Errant: generative rhythm, unstable melody and microtonal drift
Errant is a browser-based instrument for generating, editing and performing rhythm, melody and bass as three related but independently moving systems.
It began with a fairly simple question: what happens if a pattern generator is designed not merely to produce loops, but to let those loops drift into changing relationships with one another?
The rhythm, melody and bass engines can each have their own length, from one to sixteen bars. A five-bar rhythm can run against a seven-bar melody and a four-bar bass line, so the combined pattern keeps changing even though each individual part remains recognisable. Instead of building complexity by continually adding more material, Errant allows complexity to emerge from the interaction between a few clear ideas.
The rhythm engine begins with Euclidean structures, but it is not intended to produce neat, static techno patterns. Density, displacement, ratchets and swing can be introduced as optional performance layers. With those controls disabled, the rhythm plays exactly as it appears in the grid. Turn them on and the pattern can begin to shift, fracture and accumulate detail while it is playing.
The kick, snare, hats and circuit voice can all be edited directly. Generated patterns remain available as numbered versions, so an earlier idea is never lost simply because a new one has been created.
The melody engine is built around small musical identities rather than endless streams of unrelated notes. These identities can be anything from a single note to a sixteen-note phrase. They can be reconstructed differently each time they return, allowing a melody to remain familiar while gradually changing its internal shape.
Errant includes the modes of the major scale, melodic minor and harmonic minor, alongside diminished scales, whole-tone scales and a broader collection of exotic and symmetrical pitch systems.
It also supports microtonality. Melodies can use equal temperament, 19-, 22-, 24-, 31- and 53-tone divisions, just intonation, Pythagorean tuning, custom cents tables and imported Scala tuning files. Individual notes can be adjusted directly in the piano roll, making microtonality part of the composition rather than simply a global tuning effect.
An audio file can also be loaded as control data. Errant analyses its pitch movement and onset shape, then uses that information to influence generated material. The original audio is not copied into the result. It becomes a source of contour, rhythm and behaviour.
The bass engine can lock to the kick, avoid it, follow the melody or operate as its own independent Euclidean system. Like the melody, it has an editable piano roll, synthesis patches, ADSR controls, version history and its own loop length.
Every generated rhythm, melody and bass version is retained in a scrollable history. During playback, selecting another version does not interrupt the phrase halfway through. The change is queued until that instrument reaches the end of its own loop. This makes version recall usable as a performance tool, rather than simply as an undo system.
Chosen ideas can be captured into an arrangement. Rhythm, melody and bass can be collected independently or captured together as a scene, then auditioned as a longer structure. MIDI can be exported as individual patterns, combined scenes or a complete captured arrangement. Ratchets are exported as real repeated MIDI notes, while microtonal material is preserved through pitch-bend data and optional MPE-style channel allocation.
Errant also includes internal synthesis, sixteen drum kits, ten melody patches and ten bass patches, along with chorus, tempo-synchronised delay and several reverb types. Each instrument has its own level, stereo pan, mute, solo and effects sends.
The Meta Modulator provides a more physical way of performing the instrument. Three controls can be assigned to an X/Y pad and Z slider, either manually or at random, allowing several parts of the system to be moved together as one gesture.
Errant can play its own internal sounds, transmit to external MIDI instruments or do both at once. Rhythm, melody and bass can each address their own MIDI channel and one or more destinations, including the macOS IAC bus when the local MIDI launcher is used.
The aim is not to generate a finished piece while the musician watches. Errant is intended as an instrument for finding, shaping and preserving relationships that would be difficult to design directly on a conventional timeline.
The patterns may wander, but the musical decisions remain with the person using it.
