Generative Pills #2: The Music of Pi

Pi () is the most famous irrational number; the circumference of a circle is given by its diameter (two times its ray) multiplied by Pi, but ….

Pi is irrational, this means that its decimal representation NEVER ENDS (there is no “last digit of Pi”) and NEVER REPEATS (never enters a permanently repeating pattern); so it’s also an elusive and mysterious number. Already the ancient Egyptians and Babylonians tried to calculate its value as precisely as possible, and currently we “know” the first 68.2 trillions of digits of Pi (record achieved on 14 August 2021 by Team DAViS of the University of Applied Sciences of the Grisons).

Many artists have tried to use Pi as a source of inspiration, but …. but it is conjectured (we have no formal proof of it) digits of Pi are randomly uniformly distributed in the sense that the digits 0 through 9 appear equally often, as do pairs of digits, trios of digits, and so forth. So if you use a subsequence of decimal digits of Pi to (automatically) generate some “art” , then you should obtain the same result if you use a simple random number generator.


Continue reading

Generative Pills #1: Snakeline Drawings

[This is the first post of a serie dedicated to some ideas of generative art (graphics and music)]

I’ve always been a fan of the videogame Nibbler  and other snake-like videogames (I also “played” with them theoretically … but this is a total different story 😉 ). But can the concept be used for generative art? I had an idea and set up a quick sketch in which many colored snakes freely run around the screen, random food blocks are placed on the screen and whenever a snake eats a food its length increses, when a snake hits another snake or its own tail it tries to change direction … but the result was not so promising; this is an image of the sketch:

Then I tried using a simple line to draw the snake and use another set of rules:


  • a set of “snakes” (drawn as lines) are randomly placed on the screen
  • each snake:
    • has a random color. The color is picked from a finite palette for better results.
    • can move horizontally/vertically/diagonally (for mor interesting results, some of them can move only horizontally/vertically)
    • has a preferred rotation angle (clockwise or counterclockwise)
  • when a snake moves its length increases
  • if a snake hits another snake or its own tail, it tries to rotate and
    continue its run (or stops moving)

… and “magically” the results became more interesting:

I don’t know if its original: the dynamics is similar to the Tron bikes race  and I also found a method to generate paintings in the style of Piet Mondrian by Michael Fogleman (2011), but the results are quite different. So let me know in the comments if someone else has already used this technique.

I used the Snakeline Drawings algorithm to make some videos (please subscribe to my channel):

A showcase of images produced by the algorithm.

A “fractal” tribute to Bach …


The source code can be downloaded here:

snakeline v1.0 source code


The Ugliest Music on Synthesizer

Recently I saw a TEDx video by Scott Rickard about “The world’s ugliest music”; and I suggest you to watch it.
Usually good music is characterized by a balance between repetition and variation, applied to one or many of the components of the music itself: melody, texture, rhythm, form, and harmony. So what happens if we try to completely remove the repetitions?

In Scott’s music a math formula is used to generate all the 88 notes of a piano and their duration: starting from value 1, the next value is generated multiplying by 3 the previous one. If the value exceeds 88 then 89 is repeatedly subtracted until the value falls back in the 1-88 range:

1, 3, 9, 27, 81, 243–>154–>65, 195–>106–>17, … and so on

Sequences of this type are known as Costas Arrays (or Costas permutations) ; they have been studied by John Costas during his search for ideal sonar waveforms (‘pings’).

The duration of the notes are calculated using a Golomb ruler : each note is placed on the timeline in a special position (“mark”) in order to avoid any recognizable rythmic pattern. Indeed in a Golomb ruler the positions of the marks are such that all distances between them are distinct. The sequence of 88 note durations (expressed in 1/16th)  used in the ugliest music is the following:

33, 3, 45, 10, 18, 47, 30, 311, 96, 46, 145, 37, 14, 17, 71, 22, 175, 132, 8, 66,
41, 251, 11, 50, 67, 59, 39, 23, 56, 34, 241, 2, 133, 35, 157, 204, 6, 108, 29,
57, 122, 52, 60, 89, 49, 85, 147, 218, 21, 32, 72, 44, 100, 19, 111, 16, 27,
178, 12, 181, 26, 38, 103, 99, 183, 20, 131, 78, 80, 4, 180, 15, 25, 212, 24,
286, 54, 9, 92, 5, 159, 7, 87, 42, 172, 13, 69, 1

You can listen to the music played on piano in the last part of the TEDx video; the title of the piece is “Costas Golomb N.1: The Perfect Ping” … and it is quite ugly. But I like creating “bleeps and bloops” on a modular synthesizer (actually I’m using VCV-Rack and a semimodular Behringer Neutron), and sometimes the results are often not really melodic … so I tried to make a patch and play the ugliest music on it.

I also made a simple sketch in Processing 3 in which the 88×88 grid (notes are from left-to-right, top-to-bottom) are displayed and a “sonar ping” is generated when each note is played.

If you want to experiment yourself you can download:

… and the Neutron patch:

Imitating Nature Ep.1 – The Cuckoo (sound synthesis)

This is the first post about “artisanal” sound synthesis techniques that can be used to imitate (try-to imitate 😉 ) the wonderful sounds of nature. I tried to replicate the chirping of cuckoos that in this period can be heard near my house (North Italy).

I started with a raw and noisy recording of one of them, made with the nice Tascam DR-40 recorder:

Note that the cuckoo is far away and it is barely audible in the recording.

I ampified the wav file using the free (and powerful) tool Audacity: CTRL+A to select all the sound; Effect→ Amplify , set new peak to -3dB. Then the cuckoo is audible (five chirps), though there are another bird chirping, a dog is barking and there are some noises from the road:

Continue reading