💾 Archived View for thrig.me › blog › 2023 › 02 › 15 › christoffel-words.gmi captured on 2023-07-10 at 14:04:27. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-04-19)

➡️ Next capture (2023-11-14)

-=-=-=-=-=-=-

Christoffel Words

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,

christoffel.midi

or worse.

free-hearing-damage.mp3

circle.txt

https://metacpan.org/pod/Music::CreatingRhythms

tags #perl #music

bphflog links

bphflog index

next: The Long Boom