2022-08-29 21:45:17 +02:00
|
|
|
--------------------------------------------------------------
|
2022-08-29 21:38:15 +02:00
|
|
|
Inspired by Marc Evanstein video "The Rythm of The Primes"
|
|
|
|
Link: https://www.youtube.com/watch?v=8x374slJGuo
|
2022-08-29 21:45:17 +02:00
|
|
|
|
|
|
|
This program will iterate over natural numbers, playing chords
|
|
|
|
based on which prime divides given number. This results in
|
|
|
|
following execution:
|
|
|
|
|
|
|
|
step: 2 3 4 5 6 7 8 9 10
|
|
|
|
1 1 1 1 1
|
|
|
|
2 2 2
|
|
|
|
3 3
|
|
|
|
|
|
|
|
where each index corresponds to specific note from scale.
|
|
|
|
Assuming scale [c;d;e] example above would be
|
|
|
|
|
|
|
|
step: 2 3 4 5 6 7 8 9 10
|
|
|
|
c c c c c
|
|
|
|
d d d
|
|
|
|
e e
|
|
|
|
|
|
|
|
which would resolve into:
|
|
|
|
|
|
|
|
play c d c e (c & d) c d (c & e)
|
|
|
|
|
|
|
|
--------------------------------------------------------------
|
2022-08-29 21:38:15 +02:00
|
|
|
|
|
|
|
var Length = 20;
|
|
|
|
|
|
|
|
var cmajor = [c;d;e;f;g];
|
|
|
|
var scale = reverse cmajor;
|
|
|
|
var primes = nprimes (len scale);
|
|
|
|
var indicies = up (len scale);
|
|
|
|
|
|
|
|
oct 3;
|
|
|
|
len (1/16);
|
|
|
|
|
|
|
|
for (2 + up Length) [ i | play (chord scale.(indicies.(i % primes == 0))); ];
|