Sure but the way I work on tracks is a bit destructive. This is the code I saved but it may be missing a lot and you may have to alter it to get the desired effect. I also am pulling in sample libraries so you’ll have to import your own external samples and loops to get sound.
Most of what I did was use the beat slicer code which is in the SonicPi manual so if you want to accomplish something similar I’d say just look at that code and build off of it.
# INITIALIZE MASTER VALUES
use_bpm 49
counter0 = 0
use_random_seed 8 #14 #8 #3
# LOAD IN SAMPLE LIBRARIES
mabinogi = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/Mabinogi" #[0-2]
win95 = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/Windows 95" #[0-4]
mgsMenu = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/MGS 1/Menu/" #[0-87]
drumSamp = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/Free Drums 1/" #[0-59]
outrun = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/Outrun 1/" #[0-39]
tapeStop = "/Users/sheamkennedy/Desktop/DESKTOP/Drum Kits | Samples/Looperman Samples"
slomo = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/Slomo 1/" #[0-18]
aolSamp = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/AOL/AOL Samples/"
aolChop = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/AOL/AOL Chops/"
aolLoop = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/AOL/AOL Loops/"
# AUTOMATION
line_Riser0 = (line 10, 0, inclusive: true, steps: 16)
line_Riser1 = (line 8, 0, inclusive: true, steps: 128)
line_Riser2 = (line 4, 0, inclusive: true, steps: 128)
lfo0 = (line 70, 100, inclusive: true, steps: 16).mirror
lfo1 = (line 0.8, 0.99, inclusive: true, steps: 32).mirror
lfo2 = (line 120, 60, inclusive: true, steps: 4).mirror
lfo3 = (line 120, 100, inclusive: true, steps: 8)
lfo4 = (line 0.7, 0.99, inclusive: true, steps: 4).mirror
lfo5 = (line 0.3, 0.99, inclusive: true, steps: 2).mirror
live_loop :euclid_beat do
puts tick
#sample aolChop, 1, rate: (ring 0.7, 0.8)[counter0] if (spread 2, 16).look
sample aolChop, (ring 10, 11).look, rate: 0.5 if (spread 1, 16).look
# Counter for pitch variation
if (spread 1, 8).look
counter0 = counter0+1
end
sleep 1
end
/
# SuperGlitch1
live_loop :beat_slicer0 do
slice_idx = rand_i(8)
slice_size = 0.125
s = slice_idx * slice_size
f = s + slice_size
sample aolChop, 9, rate: 2, start: s, finish: f
#sleep sample_duration aolChop, start: s, finish: f
sleep 0.5
end
/
/
# SuperGlitch2
live_loop :beat_slicer1 do
puts tick
with_fx :lpf, cutoff: lfo2.look, res: lfo5.look do
slice_idx = (ring 0,3,5,2).look#rand_i(4)
slice_size = 0.125
s = slice_idx * slice_size
f = s + slice_size
sample aolChop, (ring 6,7,8,6).look, rate: 1, start: s, finish: f #13
sleep sample_duration aolChop, start: s, finish: f
end
#sleep (ring 1,1,1,1,1,1,0.5,0.5,0.5,0.5).look
end
/
live_loop :euclid_beat2 do
puts tick
with_fx :lpf, cutoff: lfo3.look, res: lfo4.look do
time_warp 2.5 do
sample aolLoop, 9, rate: 2, onset: 8 if (spread 6, 16).look
time_warp 6 do
with_fx :echo, mix: 0.4 do
sample aolLoop, 3, rate: 2, onset: 12 if (spread 4, 16).look
end
end
end
end
sleep 1
end
# ELEVATOR
live_loop :elevator do
time_warp 3 do
with_fx :level, amp: choose([0.5,0.8, 0.9]) do
with_fx :lpf, cutoff: lfo3.look, res: lfo4.look do
#with_fx :gverb, mix: 0.15 do
with_fx :echo, phase: choose([0.125,0.25,0.0625]) do
puts tick
sample outrun, 38, rate: 1, onset: pick #if (spread 1, 16).look
#end
end
end
end
end
sleep 4
end
live_loop :trip do
puts tick
with_fx :level, amp: choose([1]) do
with_fx :slicer, phase: 2 do
with_fx :lpf, cutoff: lfo0.look, res: lfo1.look do
sample aolLoop, 5, rate: (ring 2, 1).look, onset: pick
end
end
end
sleep (ring 0.5, 0.125, 0.125,0.25).mirror.look
end
live_loop :basskick do
depth = choose([3,8,16])
if (depth == 3)
volume = 0.7
end
if (depth == 8)
volume = 0.9
end
if (depth == 16)
volume = 1
end
with_fx :level, amp: choose([0,volume,volume,volume,volume]) do
with_fx :bpf, centre: lfo3.tick, res: lfo4.look do
with_fx :bitcrusher, bit: depth do
sample slomo, choose([4]), rate: 2, onset: choose([7,8]) #7,8
end
end
end
sleep choose([0.125,0.25])
end
live_loop :seq1 do
with_fx :level, amp: choose([1]) do
with_fx :echo do
with_fx :bpf, centre: lfo0.tick, res: lfo1.look do
sample aolChop, choose([0]), rate: 1, onset: pick if (spread 2, (ring 4,8).look).look
end
end
end
sleep 0.5
end
/
# TICKER
live_loop :ticker do
time_warp 8 do
puts tick
sample aolLoop, 7, attack: line_Riser2.tick, beat_stretch: (ring 0.2, 0.5)[counter0] if (spread 16, 16).look
end
sleep 0.125
end
/