r = [
1/2.0,
1/3.0,
2/3.0,
2/5.0,
3/4.0,
3/5.0,
3/7.0,
3/8.0,
4/5.0,
4/7.0,
4/9.0,
4/11.0,
4/13.0,
5/6.0,
5/7.0,
5/8.0,
5/9.0,
6/7.0,
6/11.0,
6/13.0,
6/17.0,
7/8.0,
7/9.0,
7/10.0,
7/11.0,
7/12.0,
7/13.0,
7/15.0,
7/16.0,
7/17.0,
7/18.0,
7/19.0,
7/20.0,
##| 8/9.0,
##| 8/11.0,
##| 8/13.0,
##| 8/15.0,
##| 8/17.0,
##| 8/19.0,
##| 8/21.0,
##| 8/23.0,
1/1.0,
2/1.0,
3/1.0,
3/2.0,
5/2.0,
4/3.0,
5/3.0,
7/3.0,
8/3.0,
5/4.0,
7/4.0,
9/4.0,
11/4.0,
13/4.0,
6/5.0,
7/5.0,
8/5.0,
9/5.0,
7/6.0,
11/6.0,
13/6.0,
17/6.0,
8/7.0,
9/7.0,
10/7.0,
11/7.0,
12/7.0,
13/7.0,
15/7.0,
16/7.0,
17/7.0,
18/7.0,
19/7.0,
20/7.0,
##| 9/8.0,
##| 11/8.0,
##| 13/8.0,
##| 15/8.0,
##| 17/8.0,
##| 19/8.0,
##| 21/8.0,
##| 23/8.0
]
ru = [
1/1.0,
2/1.0,
3/1.0,
3/2.0,
5/2.0,
4/3.0,
5/3.0,
7/3.0,
8/3.0,
5/4.0,
7/4.0,
9/4.0,
11/4.0,
13/4.0,
6/5.0,
7/5.0,
8/5.0,
9/5.0,
7/6.0,
11/6.0,
13/6.0,
17/6.0,
8/7.0,
9/7.0,
10/7.0,
11/7.0,
12/7.0,
13/7.0,
15/7.0,
16/7.0,
17/7.0,
18/7.0,
19/7.0,
20/7.0,
##| 9/8.0,
##| 11/8.0,
##| 13/8.0,
##| 15/8.0,
##| 17/8.0,
##| 19/8.0,
##| 21/8.0,
##| 23/8.0
]
rd = [
1/1.0,
1/2.0,
1/3.0,
2/3.0,
2/5.0,
3/4.0,
3/5.0,
3/7.0,
3/8.0,
4/5.0,
4/7.0,
4/9.0,
4/11.0,
4/13.0,
5/6.0,
5/7.0,
5/8.0,
5/9.0,
6/7.0,
6/11.0,
6/13.0,
6/17.0,
7/8.0,
7/9.0,
7/10.0,
7/11.0,
7/12.0,
7/13.0,
7/15.0,
7/16.0,
7/17.0,
7/18.0,
7/19.0,
7/20.0,
##| 8/9.0,
##| 8/11.0,
##| 8/13.0,
##| 8/15.0,
##| 8/17.0,
##| 8/19.0,
##| 8/21.0,
##| 8/23.0
]
use_bpm 26
use_random_seed 1
n = 440
n1 = n
index = 0
extra_sleep = 0
with_fx :reverb, room: 0.7 do
with_fx :reverb, room: 0.2 do
live_loop :monochord do
use_synth :tech_saws
if n <= 180
n = n * ru[(index + choose([0,0,-1,0,1,0,0])) % ru.length]
elsif n >= 720
n = n * rd[(index + choose([0,0,-1,0,1,0,0])) % rd.length]
else
n = n * r[(index + choose([0,0,-1,0,1,0,0])) % r.length]
end
play hz_to_midi(n), amp: 0.5, sustain: 0.85 + extra_sleep
n = n1
index += 19
sleep 1 + extra_sleep
extra_sleep = choose([0,0,0.25,0.5,0.5,1,0.25,-0.5,-0.5,-0.25,
0,0,0.25,0.5,0.5,1,0.25,-0.5,-0.5,-0.25,
0,0,0.25,0.5,0.5,1,0.25,-0.5,-0.5,-0.25,
0,0,0.25,0.5,0.5,1,0.25,-0.5,-0.5,-0.25,
0,0,0.25,0.5,0.5,1,0.25,-0.5,-0.5,-0.25,
0,0,0.25,0.5,0.5,1,0.25,-0.5,-0.5,-0.25,
0,0,0.25,0.5,0.5,1,0.25,-0.5,-0.5,-0.25,1.5,2,3,4,5,6])
end
end
end
live_loop :krazychord do
stop
sleep extra_sleep * 0.5
use_synth :tri
if n <= 100
n = n * choose(ru)
elsif n >= 600
n = n * choose(rd)
else
n = n * choose(r)
end
play hz_to_midi(n), amp: 0.5
play hz_to_midi(n*7/6.0), amp: 0.25
play hz_to_midi(n*6/5.0), amp: 0.125
play hz_to_midi(n*5/4.0), amp: 0.0625
play hz_to_midi(n*4/3.0), amp: 0.03125
play hz_to_midi(n*3/2.0), amp: 0.015625
play hz_to_midi(n*2/1.0), amp: 0.0078125
##| play hz_to_midi(n*6/7.0), amp: 0.25
##| play hz_to_midi(n*5/6.0), amp: 0.125
##| play hz_to_midi(n*4/5.0), amp: 0.0625
##| play hz_to_midi(n*3/4.0), amp: 0.03125
##| play hz_to_midi(n*2/3.0), amp: 0.015625
##| play hz_to_midi(n*1/2.0), amp: 0.0078125
##| n = n1
sleep 1 + extra_sleep * 0.5 + choose([0,0.1,0.2,0.3,-0.2,-0.4])
end
n0 = 440
sleep_shift = 0
with_fx :reverb, room: 0.7 do
with_fx :reverb, room: 0.2 do
live_loop :bichord do
use_synth :tech_saws
if n0 <= 180
n1 = n1 * ru[index % ru.length]
elsif n0 >= 720
n1 = n1 * rd[index % rd.length]
else
n1 = n1 * r[index % r.length]
end
sleep_shift = choose([0.25,0.5,0.25,0,0,0,0,0])
sleep sleep_shift
play hz_to_midi(n0), amp: 0.5, sustain: 0.85 + extra_sleep
play hz_to_midi(n1), amp: 0.5, sustain: 0.85 + extra_sleep
n0 = n1
sleep 1 - sleep_shift + extra_sleep
end
end
end