-------------------------------------------------------------- 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 := 40; 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))); );