Playing live_loops in a given order



I’m still working on having a nice setup for live-coding with Sonic Pi. I have yet to come up with a system to play several live_loops trigerred by their order in an array. Here is an example and details about what I’m trying to achieve:

use_bpm = 130 # global tempo

track1 = [1, 2, 3, 1, 2, 1] # my drums
track2 = [X, X, 4, 5, 6, 1] # my synthesizer n°1
track3 = [7, X, 7, X, 7, 7] # my sound-effect
# Tracks are live_loops of same duration. The number is a reference to one specific 
# live_loop that I would like to trigger. 
# X = void live_loop of same duration.

free1 = [1, 3, 2, 1, 4, 1]
# Free could be a live_loop of undefined duration, syncing to tracks every now and then.

The idea behind all this would be to modify or create some live_loops before actually inserting them in a larger musical structure. For instance, when verse I is playing, I’m preparing verse II, but I’m still able to come back to verse I after some time if I want to, just by inserting the reference number again in the array.

Having several tracks layered could be interesting to prepare some special effects, like the typical rising synth before a strong musical episode or a variation on something already heard by the audience.

I know that some of you have come up with something similar, but mostly aimed at non-real-time composition. Do you have any ideas of how it could be possible to make this idea come true ?

Thanks for your help. Reading this forum has helped me a lot so far to use Sonic Pi with all the possibilities it offers.