Sonic Pi
# 220826 2050 Sonic Pi chordarp OSC to Improviz YT
# YT https://youtu.be/bqw8IW06_Gc
use_osc "localhost", 5510 # Setup OSC to Improviz port
use_bpm 88
live_loop :time, delay: 0.01 do
sleep 1
end
with_fx :level, amp: 4 do
live_loop :beat1, sync: :time do
10.times do
sample :bd_haus, cutoff: 85 if spread(3,5).tick(:b)
sleep 0.25
end
sleep 0.25*4
end
live_loop :beat2, sync: :time do
sample :elec_blip, cutoff: rrand(85,115) if one_in(3)
sleep 2
end
live_loop :noise, sync: :time do
use_synth :noise
10.times do
play :c3, release: 0.01, amp: 0.5 if spread(5,7).tick(:n)
sleep 0.25
end
sleep 0.25*4
end
live_loop :snare, sync: :time do
sleep 1
sample :elec_snare, rate: 1, finish: rrand(0.25,0.4), cutoff: 105
sleep 1
end
live_loop :mel1, sync: :time do
#stop
use_synth :saw
a= 4
b= a/2
c= a/4
p = knit(0,a, 3,b, 5,c, 12,c, 0,b).tick(:p1)
pOSC = knit(0,a, 3,b, 5,c, 9,c, 0,b).look(:p1)
puts osc "/vars/tab1", pOSC #if spread(a,b).look# OSC to Improviz in variable tab2 = 1
#puts p
in_thread do
10.times do
r= range(70,120,step: 2).tick(:r1)
play :fs2, cutoff: r, release: rrand(0.25,0.4), pitch: p, pan: 0.5 if spread(3,5).tick(:b)
sleep 0.25
end
end
10.times do
r= range(70,120,step: 2).tick(:r1)
play :fs3, cutoff: r, release: rrand(0.25,0.4), pitch: p, pan: -0.5 if spread(3,5).tick(:b)
sleep 0.25
end
#sleep 0.25*2
sleep 0.25
puts osc "/vars/tab1", 0
sleep 0.25
end
live_loop :chordarp, sync: :time do
#stop
use_synth :pluck #:pluck
r= range(70,120,step: 1).tick(:r1)
3.times do
notes = scale(:fs3, :minor_pentatonic, num_octaves: 3)
play notes.tick(:n), cutoff: r, release: rrand(0.25,0.4), pitch: p, pan: rrand(0.5,-0.5) #if spread(11,16).tick(:b)
puts osc "/vars/tab2", notes.look(:n)/15
sleep 0.125
puts osc "/vars/tab2", 0
sleep 0.125
end
end
live_loop :reset do
puts osc "/vars/tab4", 20 # reset background in Improviz
sleep 0.25
puts osc "/vars/tab4", 0
sleep 0.25*64*2*2 # time before reset
end
end #end fx :level
Improviz
paintOver()
# 220826 2050 Sonic Pi chordarp OSC to Improviz
# YT https://youtu.be/bqw8IW06_Gc
t = time/4
background(0)
strokeSize(2)
#noFill()
#stroke(255) # nice
scale(0.7) # 1 0.8 2
a=0
#bd1 = ext(:bd1,a)
#bd2 = ext(:bd2,a)
#bd3 = ext(:bd3,a)
tab1 = ext(:tab1, a)#/100
tab2 = ext(:tab2, a)#/100
tab3 = ext(:tab3, a)/100
tab4 = ext(:tab4, 0)
#if (t%2)
b = 0.25 #thickness
# tab4
#rotate(0,0,t)
fill(0)
#move(1,0,0)
rectangle(tab4,tab4,tab4)
# tab1
rotate(0,0,t)
fill(255,150,0)
move(1,0,0)
rectangle(tab1,0.01,0.01)
#tab2
fill(255,0,0)
move(1,0,0)
rectangle(tab2,0.01,0.01)
## thin white lines
fill(255) # white
move(-4,0,0)
rectangle(3,0.000125,0.000125) # thin white lines
#delete black
#fill(0) # white
#move(-4,0,0)
#rectangle(2,0.5,0.5)
#rectangle(2,0.05,0.05)
#rectangle(3,0.0125,0.0125) # thin white lines
move(-2,0,0)
rotate(0,0,-t*0.25)
#rotate(t)