# 260321 1556 Inspired by Snowflight by Andrew York
# Performce https://youtu.be/CbzuOJe8tQQ
# https://in-thread.sonic-pi.net/t/snowflight-by-andrew-york-in-sonic-pi/9948
set_volume! 1.5
/Tape delay - need restart to sync - best without drums/
#set :myTapeLoopDelay, 0.002
set :myTapeLoopDelay, 0
/ drums /
#live_loop :drumMixer do
# tick
drums = knit(2,24,1,24, 2,48).look
drums = 2
case drums
when 0
set :drumsKickAmp, 0 # 4
set :drumsNoiseAmp, 0 # 1
when 1
set :drumsKickAmp, 4 # 4
set :drumsNoiseAmp, 0 # 1
when 2
set :drumsKickAmp, 3 # 4
set :drumsNoiseAmp, 0.65 # 1
end
# sleep 0.25
#end
/mixer/
mixer = 2
case mixer
when 1 # 1 solo
set :pan_a1, 0
set :pan_a2, 0
set :a1_amp, 1
set :a2_amp, 0
when 2 # 2 with tape loop delay
set :pan_a1, 0.75
set :pan_a2, -0.75
set :a1_amp, 1
set :a2_amp, 0.75
end
set :a1synth, :saw
set :a1octav, 0
set :a2synth, :beep #:prophet
#set :a2synth, :saw #:beep #:prophet
set :a2octav, 12 # 0 eller 12
use_bpm 88 #88
with_fx :reverb, room: 0.7 do
live_loop :a1 do
tick
use_synth get[:a1synth]
#use_synth :prophet
use_synth_defaults release: 0.3+line(0,0.2, steps: 16).look, cutoff: line(70,110, steps: 128).mirror.look
p = 6*4*2
pat = knit(0,p, 1,p, 2,p, 3,p, 4,p, 5,p, 6,p).look
# pat = knit(1,p, 2,p, 3,p, 4,p, 5,p, 6,p).look
#pat = 5
case pat
when 1
n = :c3
k = 6
n1 = [0,7,11]
n2 = [2,9,11]
n3 = [4,7,11]
n4 = [4,7,11]
n5 = [0,11,12+4]
n6 = [2,12,12+4]
n7 = [4,11,12+4]
n8 = [4,7,12+4]
npat = knit(n1,k, n2,k, n3,k, n4,k, n5,k, n6,k, n7,k, n8,k,).look
when 2
n = :c3
k = 6
n1 = [6,11,12+4]
n2 = [7,11,12+4]
n3 = [9,12,12+4]
n4 = [7,11,12+4]
n5 = [6,11,12+4]
n6 = [4,12,12+4]
n7 = [2,9,12+2]
n8 = [2,9,12+2]
npat = knit(n1,k, n2,k, n3,k, n4,k, n5,k, n6,k, n7,k, n8,k,).look
when 3
n = :c3
k = 6
n1 = [-1,2,7]
n2 = [0,4,7]
n3 = [2,6,7]
n4 = [2,6,7]
n5 = [0,7,11]
n6 = [2,9,11]
n7 = [4,7,11]
n8 = [4,7,11]
npat = knit(n1,k, n2,k, n3,k, n4,k, n5,k, n6,k, n7,k, n8,k,).look
when 4
n = :c3
k = 6
n1 = [4,11,12+7]
n2 = [3,11,12+6]
n3 = [2,11,12+4]
n4 = [1,11,12+4]
n5 = [0,11,12+4]
n6 = [2,9,12+2]
n7 = [-5,7,11]
n8 = [-5,7,11]
npat = knit(n1,k, n2,k, n3,k, n4,k, n5,k, n6,k, n7,k, n8,k,).look
when 5
n = :c3
k = 6
n1 = [0,2,7]
n2 = [-6,2,9]
n3 = [-8,4,7]
n4 = [-8,7,11]
n5 = [-8,11,12+4]
n6 = [-8,12,12+4]
n7 = [-8,12+4,12+7]
n8 = [-8,12+7,12+11]
npat = knit(n1,k, n2,k, n3,k, n4,k, n5,k, n6,k, n7,k, n8,k,).look
end
#
play n+npat.look+get[:a1octav], pan: get[:pan_a1], amp: get[:a1_amp]
sleep 0.25
end
/ tape loop delay /
live_loop :a2 do
tick
use_synth get[:a2synth]
use_synth_defaults release: 0.3+line(0,0.2, steps: 16).look, cutoff: line(70,110, steps: 128).mirror.look
p = 6*4*2
#pat = knit(1,p, 2,p, 3,p, 4,p, 5,p, 6,p).look
pat = knit(0,p, 1,p, 2,p, 3,p, 4,p, 5,p, 6,p).look
case pat
when 1
n = :c3
k = 6
n1 = [0,7,11]
n2 = [2,9,11]
n3 = [4,7,11]
n4 = [4,7,11]
n5 = [0,11,12+4]
n6 = [2,12,12+4]
n7 = [4,11,12+4]
n8 = [4,7,12+4]
npat = knit(n1,k, n2,k, n3,k, n4,k, n5,k, n6,k, n7,k, n8,k,).look
when 2
n = :c3
k = 6
n1 = [6,11,12+4]
n2 = [7,11,12+4]
n3 = [9,12,12+4]
n4 = [7,11,12+4]
n5 = [6,11,12+4]
n6 = [4,12,12+4]
n7 = [2,9,12+2]
n8 = [2,9,12+2]
npat = knit(n1,k, n2,k, n3,k, n4,k, n5,k, n6,k, n7,k, n8,k,).look
when 3
n = :c3
k = 6
n1 = [-1,2,7]
n2 = [0,4,7]
n3 = [2,6,7]
n4 = [2,6,7]
n5 = [0,7,11]
n6 = [2,9,11]
n7 = [4,7,11]
n8 = [4,7,11]
npat = knit(n1,k, n2,k, n3,k, n4,k, n5,k, n6,k, n7,k, n8,k,).look
when 4
n = :c3
k = 6
n1 = [4,11,12+7]
n2 = [3,11,12+6]
n3 = [2,11,12+4]
n4 = [1,11,12+4]
n5 = [0,11,12+4]
n6 = [2,9,12+2]
n7 = [-5,7,11]
n8 = [-5,7,11]
npat = knit(n1,k, n2,k, n3,k, n4,k, n5,k, n6,k, n7,k, n8,k,).look
when 5
n = :c3
k = 6
n1 = [0,2,7]
n2 = [-6,2,9]
n3 = [-8,4,7]
n4 = [-8,7,11]
n5 = [-8,11,12+4]
n6 = [-8,12,12+4]
n7 = [-8,12+4,12+7]
n8 = [-8,12+7,12+11]
npat = knit(n1,k, n2,k, n3,k, n4,k, n5,k, n6,k, n7,k, n8,k,).look
end
#
play n+npat.look+get[:a2octav], pan: get[:pan_a2], amp: get[:a2_amp]
sleep 0.25+get[:myTapeLoopDelay]
end
end
/ drums /
#set :drumsKickAmp, 4 # 4
#set :drumsNoiseAmp, 1 # 1
with_fx :reverb, room: 0.6 do
live_loop :b1 do
tick
sample :bd_fat, amp: get[:drumsKickAmp] if (spread(2,6)*3+spread(5,6) + spread(2,6)+spread(3,6)).look
sleep 0.25
end
with_fx :krush, mix: 0.8 do |krush|
live_loop :b2 do
tick
density [1,2,1,1,4,1].choose do
control krush, mix: [0,0.2,0.4,0.8].choose
use_synth :cnoise
use_synth_defaults release: [0.1,0.2,0.3].choose-0.05, cutoff: [60,70,80,90,100].choose+[-10,0,10,20].choose, pan: rdist(1)
#play :c4 if spread(7,12).look
play :c4, amp: get[:drumsNoiseAmp] if spread(22,32).look
# play :c4 if spread(30,32).look
sleep 0.25
end
end
end
end
3 Likes
Hi,
this is lovely, thank you - it takes me back to my undergraduate days, struggling to get his “Sunburst” right.
PD-Pi
1 Like
This is gorgeous esp with headphones on and the wild panning with high percussion.
1 Like
Wow! I totally dig the off-kilter rhythms in the high percussion.
I’ll dig into your code to better understand how you pulled it off.
Well done!
1 Like