Seeds of Numbers
This generative experiment is a take over of Instagram as a creative platform. The pool function is the instigator of an artificial seeding which results into the blossom of an algorithmic flower: an audiovisual 15-second art piece generated to be consumed online in the short time allocated by the platform it is released on.
Instagram users are invited to choose between two numbers which, at the end of the day, are input into custom-made algorithms coded by the artists to compile a generative audio track and visual animation.
By choosing one number rather than the other, the users will unknowingly choose between a dichotomy of unexplored pathways.
A collective effort towards a shared result.
Seeds of Numbers is about ‘hacking' the marketing function of the Instagram pools to bend them to the creativity of the artists.
(Seeds of Numbers is the second experiment of the series ’15s or less’.
15s or less is a Umanesimo Artificiale series of experiments thought specifically for Instagram and crafted to be experienced uniquely through the Instagram stories.)
> Visual: Luca Scarlatta
For the visuals of this project, I wanted to give a synthetical representation of a flower. In nature, every plant and flower is generated “algorithmically” through a process defined by math and numbers. So my interest is to express an idea of a flower, thinking of it in a parametric and algorithmic way, following rules of nature and rules of programming languages. The visuals are also influenced by music generated with Seed Music Generator software, by LCC. The mood of the visual depends on numerical values and other data chosen by people through the Instagram polls. Every day, at the end of the day, we posted a single flower, representation of the seed number chosen by the users. The last day, due to a very considerable quantity of values received, flowers have been collected in a recursive branch, giving rise to a Tree of Numbers.
The visual is entirely coded in p5.js and the flower algorithm can be divided into these steps: 1. Think of a flower as a bunch of concentrical circles, and draw it trigonometrically 2. Each circle can be modified with noise, giving the illusion of petals
3. What if noise is dynamically controlled with audio parameters?
Let’s assume that the shape of a flower can be considered as a noise-modified circle, and so draw it trigonometrically. A circumference is a collection of points all equidistant from the center with a given radius; if I add a noise offset to this radius, I can obtain different distances from the center, deforming the circumference itself. There are two parameters here that control how the output looks. The frq (frequency) parameter scales the coordinates passed to the noise3D call, with larger values leading to more random peaks. The mag (magnitude) parameter controls how big each of these peaks is.
The fun comes when I stack these deformed circles in a recursive function, putting them one on top of the others giving illusion of petals/layers of a flower like in the following image:
This result in p5.js was so interesting that it pushed me to research more on the shape, firstly tweaking the opacity of the background to make outlines leave a trace and putting another smaller flower on the top of the stack to simulate disk florets.
Lastly, the colors are controlled by mapping audio values from LCC tracks reading their spectrum, waveform, low, mid, treble values through p5’s FFT. A bunch of other parameters are used, like track name number, which is also used as noise seed for noise values, who define the initial shape. Below is what the p5.js function looks like.
Results are very different, depending on the mood of the generative audio:
> Audio: Emanuele Balia
To create the music for the project I used a software I made with MaxMSP for my musical project Max_value_32 called Seed Music Generator.
Within computer systems, music is expressed through numbers. I was interested to experiment whether within a universe of numbers algorithmically created, it was possible to find combinations of numbers which were musically pleasing to a broad audience.
To achieve this goal, I used random number generators (in particular pseudo-random generators or PRNG) and algorithms to transform numbers into musical scores.
The peculiarity of the PRNG is to generate numbers from a starting value data, named ‘seed’, which generates the same sequence of numbers, therefore each seed corresponds to a unique and determined numerical universe (in this case a seed corresponds to a precise musical score).
In this man-machine relationship there is a division of roles for musical creation: the man decides which instruments the score should play and the machine decides how to transform numbers into melodies and rhythms anyone can understand.
The MaxMSP algorithm is divided into three consecutive phases:
first it generates a universe of numbers
then it transforms numbers into musical scores
lastly it plays the scores on virtual musical instruments
Let’s take the number 667 and follow the steps on the Fig. 1.1 below.
We will use the number 667 (step 1)
To make a PRNG generate (step 2)
A numerical universe made of 256 values (step 3).
In this first phase we will collect only the first 6 numbers of the list. (Fig. 1.2)
This is because per each value the software will generate other numerical series and transform them in 6 scores for 6 different instruments (which we will see in the following phases).
The six numbers we selected earlier (Fig. 1.2) will allow other PRNGs linked to 6 ‘modules’ (kick, snare, hithat, melody1, melody2, melody3) to create further numerical lists; however, in this case, the series of numbers will be more similar to a musical language and each module has a specific function: some transform the data into rhythm and others into melodies - sequences of zeros and one for the rhythms, numbers between 0 and 127 for the notes (Fig. 1.3.).
Fig. 1.4 and Fig. 1.5 show how the numbers are visualized in MaxMSP; it can be seen that the visualization of the numbers in the modules melody2 and melody3 seems a piano roll.
Once the initial random numbers have generated musical patterns, the data are ready to be played by hardware or software musical instruments through the MIDI OUTPUT module (Fig. 1.6).
From this point on, the musician manages the software output, deciding which virtual instruments should play the scores generated by the machine.
The MIDI OUTPUT module is linked to 6 different modules, for instance bass drum, snare drum, bass synth, steel drum, etc.).
Fig. 1.7, Fig. 1.8, Fig. 1.9 represents examples of virtual musical instruments (VST) I used for this project.
A peculiarity of the Seed Number Generator is that it is able to reproduce several Seeds in sequence.
In the Fig.1.10 you can see how the software interprets (from top to bottom) the sequence 667, 11, 666 chosen by the audience through the Instagram polls during the project:
The first column (SEED) contains the seeds chosen by the audience
The second column (BARS) defines for how many bars each Seed is repeated
The third column (SOUNDS) defines the instruments that will play the musical scores (i.e. kick, snare, glitch+perc…).
The Fig. 1.11 shows how the score is represented inside Ableton Live.
Each track is colour-coded and is named based on the type of instrument it represents.
We can see, for instance, how the track “glitch+percussion” is not playing in the first part, this is due to the fact that this instrument is associated to the numbers 11 and 666 which makes up the last part of the song.
Lastly, Fig. 1.12 shows the interface of the Seed Music Generator.
It is divided into two parts: the one of the left shows the seeds to be reproduced; the one on the right shows the musical content inside each number.
The audio and graphics are then combined to create the generative version of the experiment, all based on the specific seed used by the algorithms.
Umanesimo Artificiale is a cultural association based in Italy promoting the
creative use of coding. Its intent is to investigate what it means to be
human in the era of artificial intelligence and to question the relationship
between men and machines.