plucky geometric rhythm generator
A little while ago, @setfield and I got talking about an idea he had for a Norns sequencer: something kinda like @jakecarter’s celebrated Circles, but with polygons of various sizes and shapes, which you’d place along a horizontal axis and set spinning at whatever speed you wanted. Notes would play when they collided with one another.
I sent him a terrible sketch (featured in the video above) to make sure I got the idea, and a few weeks, a bunch of back & forth, a couple high school algebra and calculus refreshers, a Google-based crash course in computational geometry, and a good handful of "ooh, and what if…"s later, we’re very pleased to present an initial release of this script.
@setfield’s been teasing it for a little while on Instagram, and his latest video features much better tabletop Norns friends than I had on hand:
Norns (latest system always recommended, but version 200424 or later should be fine)
Euclidigons has its own SuperCollider engine, so take a nap after installing or run SYSTEM > RESET, otherwise you’ll get a “Missing PrimitiveString” error.
At script startup, there will be two polygons visible on the screen. Think of their sides as strings: when a side is crossed by one of the other shapes’ vertices, the string is plucked or struck.¹ The faster the side-string and vertex-plectrum are traveling relative to one another, the louder and brighter the note will be; and different harmonics will be emphasized depending on where along its length the string is struck.
E1 chooses a shape to edit.
E2 moves it along the X axis.
E3 changes its size.
K2+E2 sets rotation rate.
K2+E3 sets the number of sides (1-9).
K3+E2 sets the note to which the shape’s sides are tuned.²
K3+E3 transposes the note in octaves, or changes MIDI settings if MIDI is active.²
K3 by itself mutes or unmutes the selected shape.³
K2+K3 inserts a new shape.
K3+K2 deletes the selected shape.
1. by default, notes are only sounded when one shape’s vertex crosses into another shape, but this can be changed using the ‘trigger style’ param.
2. changes made while holding K3 will apply only once K3 is released. to reset changes made while holding K3 instead of applying them, hold K1 while continuing to hold K3.
3. set the ‘mute style’ param to ‘own note only’ to allow a muted shape’s vertices to pluck the strings of another shape.
More details in the readme.
Available in Maiden; or:
v1.0.0 - https://github.com/synthetiv/euclidigons/archive/v1.0.0.zip
Questions, bug reports, ideas, etc. all welcome, naturally