Well i thought about generating interfering patterns which then create for example melodie, sleeps, releases etc. could be used with almost eveything i guess…
Have u already tried such approach?
I think this will make it easier to sync melodies and basslines because i can use roots now
i will try to generate a song with it
Ps: i Love how freaking flexible sonic pi is
Sorry for updating so much i will stop for now, xD i guess ill post at the end of the day, but without ur help i am sometimes lost haha
set_mixer_control! amp: 1
#-----------------------------------------SETS----------------------------------------
set :rslep, 1
set :sleeps1,1
set :sleeps2,1
set :sleeps3,1
set :degr3,1
set :degr2,1
set :degr1,1
set :degr,1
set :rel1, 1
set :rel2, 1
set :rel3,1
set :rel4, 1
set_mixer_control! amp: 1
#----------------------------------------------METRONOM-----------------------------------------
live_loop :metro do
sleep 2
end
#-------------------------------------------SLEEP----------------------------------------------------------------------------------
live_loop :root_sleeps do
#8
set :sleeps1, (ring 0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25 ).tick(:asdfgw4)
sleep 0.25
end
live_loop :rslep do
#7
set :sleeps2, get(:sleeps1)
sleep get(:sleeps2)
set :sleeps2, get(:sleeps1) + (ring 0.25, 0).tick(:safnhiogqq4)
sleep get(:sleeps2)
set :sleeps2, get(:sleeps1)
sleep get(:sleeps2)
set :sleeps2, get(:sleeps1)
sleep get(:sleeps2)
set :sleeps2, get(:sleeps1)
sleep get(:sleeps2)
set :sleeps2, get(:sleeps1)
sleep get(:sleeps2)
set :sleeps2, get(:sleeps1)
sleep get(:sleeps2)
end
live_loop :rslep1 do
#6
set :sleeps3, get(:sleeps2) + 0.25
sleep get(:sleeps3)
set :sleeps3, get(:sleeps2)
sleep get(:sleeps3)
set :sleeps3, get(:sleeps2)
sleep get(:sleeps3)
set :sleeps3, get(:sleeps2)
sleep get(:sleeps3)
set :sleeps3, get(:sleeps2) + (ring 0.25, 0).tick(:safnhiogqq4)
sleep get(:sleeps3)
end
#----------------------------------------DEGREES------------------------------------------------------------------------------------------
live_loop :roots do
#8
set :degr, (ring 1,1,1,1,1,1,2).tick(:gije3)
sleep get(:sleeps3)
end
live_loop :roots1 do
#7
set :degr1, get(:degr)
sleep get(:sleeps3)
set :degr1, get(:degr)
sleep get(:sleeps3)
set :degr1, get(:degr)
sleep get(:sleeps3)
set :degr1, get(:degr) +5
sleep get(:sleeps3)
set :degr1, get(:degr)
sleep get(:sleeps3)
set :degr1, get(:degr)
sleep get(:sleeps3)
set :degr1, get(:degr)
sleep get(:sleeps3)
end
live_loop :roots2 do
#5
set :degr2, get(:degr1) + 3
sleep get(:sleeps3)
set :degr2, get(:degr1)
sleep get(:sleeps3)
set :degr2, get(:degr1)
sleep get(:sleeps3)
set :degr2, get(:degr1) + 1
sleep get(:sleeps3)
set :degr2, get(:degr1)
sleep get(:sleeps3)
end
live_loop :roots3 do
#3
set :degr3, get(:degr2)
sleep get(:sleeps3)
set :degr3, get(:degr2)
sleep get(:sleeps3)
set :degr3, get(:degr2) + 9
sleep get(:sleeps3)
end
#---------------------------------------RELEASE-----------------------------------------------------------------------------#
live_loop :rels do
#8
set :rel1, (ring 0.125, 0.125,0.125,0.125,0.125,0.125,0.125,0.125).tick(:gouteh)
sleep get(:sleeps3)
end
live_loop :rels1 do
#7
set :rel2, get(:rel1)
sleep get(:sleeps3)
set :rel2, get(:rel1)
sleep get(:sleeps3)
set :rel2, get(:rel1) + (ring 0.25).tick(:fpkhjg)
sleep get(:sleeps3)
set :rel2, get(:rel1)
sleep get(:sleeps3)
set :rel2, get(:rel1)
sleep get(:sleeps3)
set :rel2, get(:rel1) +0.25
sleep get(:sleeps3)
set :rel2, get(:rel1)
sleep get(:sleeps3)
end
live_loop :rels2 do
#5
set :rel3, get(:rel2) +0.25
sleep get(:sleeps3)
set :rel3, get(:rel2)
sleep get(:sleeps3)
set :rel3, get(:rel2)
sleep get(:sleeps3)
set :rel3, get(:rel2) + (ring 0.25).tick(:olhwe)
sleep get(:sleeps3)
set :rel3, get(:rel2)
sleep get(:sleeps3)
end
live_loop :rels3 do
#3
set :rel4, get(:rel3) + 0.25
sleep get(:sleeps3)
set :rel4, get(:rel3)
sleep get(:sleeps3)
set :rel4, get(:rel3) + (ring 0.25).tick(:olhwfsdfse)
sleep get(:sleeps3)
end
#--------------------------------------------PLAYER------------------------------------------
live_loop :degrees, sync: :metro do
play degree(get(:degr3), :C3, :minor), release: get(:rel3), amp: 5
sleep get(:sleeps3)
end