I try to illustrate with sounds the general movement of my artistic installation. Maybe there is easier way to do it with Max/msp but if someone can help with Processing, let’s try!
For the moment, I can just play one synthesized sound or just one sample. Not to at the same time.
Here the link. https://youtu.be/JnCD7ezMawk
Briefly, I run five motors "at the same speed » and they are out of phase in different ways. Here is one:
At first they all turn in phase at 50 rpm. After a certain number of turns, all the motors are out of phase with each other with a gap that increases with time. When the gap exceeds 90 °, 1/4 turn, the speed of each motor increases while keeping the gap between the motors constant. Then when the gap between each motor is 180 °, a 1/2 turn, all engines seem synchronized in phase and speed.
Then we come back to the beginning, the speed is decelerating and the gap is equal to zero and starts to increase again.
To succeed in shifting the motors, there are permanent adjustments of the speed of each motor so that their relative position (the phase difference) is equidistant.
My program in Arduino allows me to have several informations in real time:
The position of each motor: from 0 to 359 °.
So with a subtraction in Processing, I could have the gap between each engine.
The speed of each motor: between 45 and 55 rpm
My first idea to illustrate this movement is to do some kind of serial music
Trigger a sound at 440hz, or a sample, with a pitch of 440hz, for example, every time each motor does exactly one trick. Processing receives the info 0 as soon as the Arduino program sends the information 0.
We would have at the beginning five times the same note or sound that would be triggered exactly at the same time.
Then as the gap between the motors gets bigger, the sounds of each motor and therefore of each track, are triggered with always a little more time shift (since they arrive at position 0 with a phase difference which increases )
Then to vary the pleasures, it would be necessary that as soon as the difference between the motors exceeds a threshold of 15 °, it would be necessary that the frequency ratio between each track is equivalent to an interval of one semitone.
To calculate, the frequency Fi of each track where n is the interval in semitone since a frequency of origin F0=440hZ, the A3, it is necessary to apply this formula:
Fi = F0 * 2 ^ n / 12
So in Processing, as soon as it receives the info> 15, which means that the program knows that the difference between the motors is 15 ° then, we replace the n of this formula by 0, 1, 2, 3, 4.
F0 = 440 * 2 ^ 0/12; F1 = 440 * 2 ^ 1/12; F2 = 440 * 2 ^ 2/12; F3 = 440 * 2 ^ 3/12; F4 = 440 * 2 ^ 4/12;
Now the notes, in addition to triggering with time shift, are different in pitch.
The notes played should be the A, A #, B, B#,C in the third octave.
Then when the gap between the motors is 30 °, the interval between two sounds should be two-half tone or one tone. So, we would have to replace n with 0,2,4,6,8. So for the 5 tracks we have:
F0 = 440 * 2 ^ 0/12; F1 = 440 * 2 ^ 2/12; F2 = 440 * 2 ^ 4/12; F3 = 440 * 2 ^ 6/12; F4 = 440 * 2 ^ 8/12
Then when the gap between the motors is 45 °, it would take a tone and a half, so we replace n by 0, 3, 6, 9, 10.
And so on for the gap between each motor of 60, 75. That is to say for 60 replace n by 0, 4, 8, 12, 16 and for 75 by 0, 5, 10, 15, 20.
For 75 ° of difference between each engine, the fifth track F4 plays an F5
Then at 90 °, it is decided to transpose all the notes in F5. That is, the value of n for the five tracks F0, F1, F2, F3, F4 is equal to 20.
And as soon as the gap goes to 15 °, when it reaches 105 °, there is a semitone between each track.
For 105 ° → F0: n = 20, F1: n = 19, F2: n = 18, F3: n = 16, F4: n = 16
At 120 °, the interval between each track is two half ton, so
F0: n = 20, F1: n = 18, F2: n = 16, F3: n = 14, F4: n = 12
At 135 °, the interval between each track is three half ton, so
F0: n = 20, F1: n = 17, F2: n = 15, F3: n = 12, F4: n = 9
At 150 °, the interval between each track is four half ton, so
F0: n = 20, F1: n = 16, F2: n = 12, F3: n = 8, F4: n = 4
At 175 °, the interval between each track is four half ton, so
F0: n = 20, F1: n = 15, F2: n = 10, F3: n = 5, F4: n = 0
And when the gap reach at 180°, we have come back to the set of the begin, as is the gap should be at 0°.
Later, I think I will have to play with filter the parameters of position and speed of each motor.
Thanks for your attention for your help.