# 241219 2156 Steve Reichs Phasing Technique live coded with Sonic Pi on a rainy day YT
# Saved 241219 2156
# Created by https://linktr.ee/relaxnow
# Performance https://youtu.be/yDrxUeipXx8
# https://in-thread.sonic-pi.net/t/steve-reichs-phasing-technique-live-coded-with-sonic-pi-on-a-rainy-day/9387
# Inspiration from Hainbach: "The Endless Inspiration of Steve Reich's Phasing Technique"
# https://youtu.be/3OEhe8Pf8PI?feature=shared&t=504
set_volume! 4
use_bpm 90
with_fx :reverb, room: 0.4 do
/ top mel + phasing on sleep/
live_loop :a2 do
use_random_seed 1000
32.times do
tick
use_synth :pluck
play :c4+[0,-2,-4,-5,-7,2,4,5,7].choose, release: [0.2,0.2,0.6,0.2,0.1,0.1].choose, pan: rdist(0.5)#, amp: [1,1,1,1,1,0,1,1,0,1,0].look
sleep 0.25
end
end
live_loop :a3 do
use_random_seed 1000
sl = 0.25
32.times do
s = 0.001
#s = 0
tick
use_synth :pluck
play :c5+[0,-2,-4,-5,-7,2,4,5,7].choose, release: [0.2,0.2,0.6,0.2,0.1,0.1].choose, pan: rdist(0.25)#, amp: [1,1,1,1,1,0,1,1,0,1,0].look
sleep sl+s
end
end
/ drums /
live_loop :a1 do
tick
drums = knit(0,16,1,128+16).look
case drums
when 0
when 1
##sample :elec_tick if bools(1,0,0,0).look
sample :bd_fat, amp: 4 if spread(1,32).look
sample :bd_haus, cutoff: 70+line(0,20,steps: 128*2).look if bools(1,0,1,0, 0,1,0,0, 1,0,0,0, 0,0,0,0).look
sample :sn_generic, finish: 0.04+rdist(0.02) if bools(0,0,0,0, 1,0,0,0, 0,0,0,0, 1,0,0,0).look
sample :sn_dub, finish: rrand(0.007,0.002), pan: rdist(0.5) if spread(3,5).look
end
sleep 0.25
end
/ bass /
live_loop :a4 do
tick
bass = knit(0,32,1,32,2,64,3,64).look
case bass
when 0
when 1
use_synth :saw
use_synth_defaults cutoff: 100, release: [0.1,0.2,0.3].choose-0.05
n = :c2+knit(0,32,-2,32).look
play n+[0,0,0,0,12].look, amp: 1.75# if spread(1,3).look
when 2
use_synth :prophet
use_synth_defaults cutoff: [70,80,90,100].choose-20, release: [0.1,0.2,0.3].choose+0.3
n = :c2+knit(0,32,-2,32).look
play n+[0,0,0,0,12].look, amp: 2 if spread(knit(1,16,2,16,3,32).look,3).look
when 3
use_synth :tb303
use_synth_defaults cutoff: [70,80,90,100,110,120,130].choose-20, release: [0.1,0.2,0.3].choose+0.1
n = :c2+knit(0,32,-2,32).look
play n+[0,0,0,0,12].look, amp: 1, pan: rdist(0.5) if spread(2,3).rotate(2).look
play n+[0,0,0,0,12].look-12, amp: 0.8, pan: rdist(1) if spread(2,3).rotate(2).look
end
sleep 0.25
end
end
7 Likes
This is catchy! I had to listen a couple of times after hearing the pluck melody emerge. A year ago I couldn’t imagine enjoying watching live coding actually didn’t even know it was a thing. Interesting to see how you handled the bass changes and the timing of the run.
2 Likes
Wonderful! This may well be the best thing I’ve heard so far in Sonic Pi.
2 Likes
I really enjoyed this one. Very hypnotic and catchy.
I like the way you scheduled the voice changes. I’m gonna have to mull that one over.
1 Like