musique/examples/rhythm-of-primes.mq
Robert Bendun ddf9cc8f8c New declaration syntax x := foo instead of var x = foo
Additionaly moving into multiparameter binary operations
2022-09-18 14:50:20 +02:00

39 lines
962 B
Plaintext

--------------------------------------------------------------
Inspired by Marc Evanstein video "The Rythm of The Primes"
Link: https://www.youtube.com/watch?v=8x374slJGuo
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)
--------------------------------------------------------------
Length := 20;
cmajor := [c;d;e;f;g];
scale := reverse cmajor;
primes := nprimes (len scale);
indicies := up (len scale);
oct 3;
len (1/16);
for (2 + up Length) [ i | play (chord scale.(indicies.(i % primes == 0))); ];