Maybe this is a clear method to order sequence of patterns, next to a linear time mode thinkin. Note that in this idea each of the two channels (right and left, because all we have almost a stereophonic setup) can get the notes from a pattern (seq1,2,ecc…) but each channell is using a specific synth.
The “discover” here is the use of dotted comma in the function in_thread. Thanks to the community that make my spot over that due some composition posted in these days (@binarysweets and @Eli) .
##PATTERNS##
define :seq1 do
i = 0
4.times do
play (ring :c3, :c3, :c3, :c3)[i], release: 0.25
sleep 0.25
i = (inc i)
end
end
define :seq2 do
i = 0
8.times do
play (ring :f3, :a3, :c4, :e4)[i], release: 0.125
sleep 0.125
i = (inc i)
end
end
define :seq3 do
i = 0
4.times do
play (ring :g3, :b3, :d4, :f4)[i], release: 0.25
sleep 0.25
i = (inc i)
end
end
define :seq4 do
play :c4, release: 0.25
sleep 4
end
define :paus do
4.times do
sleep 0.25
end
end
##SEQUENCE##
use_bpm 66
with_fx :pan, pan: 1 do
use_synth :saw
in_thread do seq1; seq2; paus; seq1; seq2; paus; seq1; seq2; seq3; seq4 end
end
with_fx :pan, pan: -1 do
use_synth :square
in_thread do paus; seq3; seq1; seq3; paus; seq2; seq1; seq2; seq3; seq4 end
end