For more questions regarding usage, feel free to contact the artist directly.
Contact artist
The piano part was made in Sonic Pi and the synth progression was made in Bespoke Synth. Both are free tools. It is better if you listen in Spanish.
use_synth :piano
use_bpm 60
trigger = false
scales = [:minor, :major]
allnotes = []
scales.each do |sc|
scale_notes = (scale [:C, :D, :A, :G, :E].choose, sc)
puts (scale_notes)
pat1 = []
pat2 = []
pat3 = []
pat4 = []
pat5 = []
pats = [pat1,pat2,pat3,pat4,pat5]
lengths = [7,3,5,4,6]
sleeps = [[0.25,0.5/3,0.5/3,0.5/3,0.125,0.125,0.125,0.125,0.5/3,0.125,0.5/3,0.125,0.5/3],[1.0/3,1.0/3,1.0/3,0.5/3,0.5/3,0.5/3,0.25,0.125,0.125],[0.125,0.125,0.25,1.0/3,1.0/3,1.0/3,0.125,0.125,0.125]]
lencount = 0
while lencount < lengths.size do
j = 0
if one_in(3)
sub = 12
else
sub = 0
end
while j < lengths[lencount] do
newnote = scale_notes.choose - sub
while newnote == pats[lencount][-1]
newnote = scale_notes.choose
end
pats[lencount].append(newnote)
j += 1
end
puts(pats[lencount])
lencount+=1
end
sleep 4
z = 1
32.times do
if z % 4 == 0
mult = 2
else
mult = 1
end
j = [0,1,2,3,4].choose
k = [0,1,2,3,4].choose
while k == j
k = [0,1,2,3,4].choose
end
pat = [pats[j] + pats[k], pats[k] + pats[j], pats[j].reverse + pats[k], pats[k].reverse + pats[j]].choose
sp = sleeps[j]
k = 0
t = 0
buffer = []
buffersize = [6,12,18].choose
bufferi = 0
spat = sleeps.choose
pat.each do |n|
s = spat[k%spat.size]
while n == allnotes[-1]
n = scale_notes.choose
end
if one_in(8)
if one_in(2)
if n = 48
n = n - 12
end
end
if s == 0.25
sleep 0.25 * mult
else
sleep 0.125 * mult
end
end
if z == 32 or z == 16
if n = 48
m = m - 12
end
end
play m, release: [1,2].choose
sleep [0.5/3,0.5/3,0.5/3,0.125,0.125,0.25].tick * mult
allnotes.append(m)
end
buffer = []
bufferi = 0
buffersize = [6,12,18].choose
trigger = false
end
if z % 3 == 0
play scale_notes[0] - 12, release: 4
play scale_notes[0] + 7 - 12, release: 4
else
play scale_notes[0], release: 4
play scale_notes[0] + 7, release: 4
end
if z % 6 == 0
sleep 0.5
play scale_notes[0] + 12, release: 4
play scale_notes[0] + 7 - 12, release: 4
end
sleep 0.125
if one_in(z)
if t == 0.25
sleep 0.75 * mult
else
sleep 0.875 * mult
end
end
z += 1
end
play scale_notes[0] + 7 - 12, release: 4
play scale_notes[0] - 12, release: 4
sleep 0.5
play scale_notes[0] + 7 - 12, release: 4
play scale_notes[0] - 12, release: 4
end