💾 Archived View for thrig.me › blog › 2023 › 02 › 15 › christoffel-words.gmi captured on 2023-03-20 at 18:10:52. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Christoffel words probably have utility for field-of-view in roguelikes among other, less important purposes. Here they are abused to produce rhythmic variations. The implementation comes by way of the book "Creating Rhythms" (Hollos, 2014) and associated code.
https://abrazol.com/books/rhythm1/software.html
The idea is to sweep a circle through some number of degrees, and for a point at some radius generate Christoffel words of some length, minus duplicates.
1000000000000000000000000000000000000000000000000000000000000000 1000000000000000000000000000000000000000000000000000000000001000 1000000000000000000000000000000000000000000000000000000001000000 1000000000000000000000000000000000000000000000000000001000000000 1000000000000000000000000000000000000000000000000001000000000000 1000000000000000000000000000000000000000000000000100000000000000 1000000000000000000000000000000000000000000000010000000000000000 1000000000000000000000000000000000000000000001000000000000000000 1000000000000000000000000000000000000000000100000000000000000000 1000000000000000000000000000000000000000010000000000000000000000 1000000000000000000000000000000000000000100000000000000000000000 1000000000000000000000000000000000000010000000000000000000000000 1000000000000000000000000000000000000100000000000000000000000000 1000000000000000000000000000000000001000000000000000000000000000 1000000000000000000000000000000000010000000000000000000000000000 1000000000000000000000000000000000100000000000000000000000000000 1000000000000000000000000000000001000000000000000000000000000000 1000000000000000000000000000000010000000000000000000000000000001 1000000000000000000000000000000100000000000000000000000000000100 1000000000000000000000000000001000000000000000000000000000001000 1000000000000000000000000000010000000000000000000000000000100000 1000000000000000000000000000100000000000000000000000000100000000 1000000000000000000000000001000000000000000000000000001000000000 1000000000000000000000000010000000000000000000000000100000000000 1000000000000000000000000010000000000000000000000001000000000000 1000000000000000000000000100000000000000000000000010000000000000 1000000000000000000000000100000000000000000000000100000000000000 1000000000000000000000001000000000000000000000001000000000000000 1000000000000000000000001000000000000000000000010000000000000000 1000000000000000000000010000000000000000000000100000000000000000 1000000000000000000000010000000000000000000001000000000000000000 1000000000000000000000100000000000000000000010000000000000000000 1000000000000000000000100000000000000000000100000000000000000000 1000000000000000000001000000000000000000001000000000000000000001 1000000000000000000001000000000000000000001000000000000000000010 1000000000000000000001000000000000000000010000000000000000000100 1000000000000000000010000000000000000000100000000000000000001000 1000000000000000000010000000000000000001000000000000000000010000 1000000000000000000010000000000000000001000000000000000000100000 1000000000000000000100000000000000000010000000000000000001000000 1000000000000000000100000000000000000010000000000000000010000000 1000000000000000000100000000000000000100000000000000000100000000 1000000000000000001000000000000000001000000000000000001000000000 1000000000000000001000000000000000001000000000000000010000000000 1000000000000000001000000000000000010000000000000000010000000000 1000000000000000001000000000000000010000000000000000100000000000 1000000000000000010000000000000000100000000000000001000000000000 1000000000000000010000000000000000100000000000000010000000000000 1000000000000000010000000000000001000000000000000010000000000000 1000000000000000010000000000000001000000000000000100000000000000 1000000000000000100000000000000010000000000000001000000000000000 1000000000000000100000000000000010000000000000010000000000000001 1000000000000000100000000000000100000000000000010000000000000010 1000000000000000100000000000000100000000000000100000000000000100 1000000000000001000000000000001000000000000001000000000000001000 1000000000000001000000000000001000000000000010000000000000010000 1000000000000001000000000000010000000000000010000000000000100000 1000000000000001000000000000010000000000000100000000000000100000 1000000000000001000000000000010000000000000100000000000001000000 1000000000000010000000000000100000000000001000000000000010000000 1000000000000010000000000000100000000000010000000000000100000000 1000000000000010000000000001000000000000010000000000001000000000 1000000000000010000000000001000000000000100000000000001000000000 1000000000000010000000000001000000000000100000000000010000000000 1000000000000100000000000100000000000100000000000100000000000000 1000000000000100000000000010000000000001000000000000100000000000 1000000000000100000000000010000000000001000000000001000000000000 1000000000000100000000000010000000000010000000000001000000000001 1000000000000100000000000100000000000010000000000010000000000001 1000000000000100000000000100000000000100000000000010000000000010 1000000000000100000000000100000000000100000000000100000000000100 1000000000001000000000001000000000001000000000001000000000001000 1000000000001000000000001000000000001000000000010000000000010000 1000000000001000000000001000000000010000000000010000000000100000 1000000000001000000000010000000000010000000000100000000000100000 1000000000001000000000010000000000010000000000100000000001000000 1000000000001000000000010000000000100000000000100000000001000000 1000000000001000000000010000000000100000000001000000000010000000 1000000000010000000000100000000001000000000010000000000100000000 1000000000010000000000100000000001000000000100000000001000000000 1000000000010000000000100000000010000000000100000000001000000000 1000000000010000000000100000000010000000000100000000010000000000 1000000000010000000001000000000010000000001000000000010000000001 1000000000010000000001000000000010000000001000000000100000000001 1000000000010000000001000000000100000000001000000000100000000010 1000000000010000000001000000000100000000010000000000100000000010 1000000000010000000001000000000100000000010000000001000000000100 1000000000100000000010000000001000000000100000000010000000001000 1000000000100000000010000000001000000000100000000100000000010000 1000000000100000000010000000001000000001000000000100000000010000 1000000000100000000010000000010000000001000000000100000000100000 1000000000100000000010000000010000000001000000001000000000100000 1000000000100000000100000000010000000010000000001000000001000000 1000000000100000000100000000010000000010000000010000000001000000 1000000000100000000100000000100000000010000000010000000010000000
Yes, but where is the music?
For angle 29.5 through pi/4 in degrees with various other settings--sweep angle, radius, etc.--one result is the following 14 patterns,
1001001001001010 1001001001010100 1001001001010010 1001001010010010 1001001010010100 1001010101010000 1001010010100101 1001010010101001 1001010100101010 1001010101010100 1001010101001010 1001010101010010 1001010101010101 1000000000000000
which can of course be turned into MIDI,
or worse.
https://metacpan.org/pod/Music::CreatingRhythms