Version 1
# 221111 0213 calm_rhodes_like_variations with new case structure as mixer
# Saved 221111 0210
# Backup
# Created by https://linktr.ee/relaxnow
# https://in-thread.sonic-pi.net/t/221111-calm-rhodes-like-variations-with-new-case-structure-as-mixer/7248
# Jumping off point: "Rhythm concepts for intermediate producers" https://youtu.be/wf6j1icUOVE?t=261
# Idea - create variations on
## accent => amp:
## duration => release:
## filter => cutoff:
## rythm => euklid => spread() or binary bools()
## polymeter => offgrid length of something that repeats over grid things (not used here)
## probability => one_in()
# Q: What did I learn doing this?
# A: A new way to setup case as a mixer
live_loop :calm_rhodes_like_variations do
tick
A = [1,0,0,0,0]
B = [1,0,0]
C = [1,0,0,0]
r = [1,1,1,2].choose
d = 64/r
D = knit(0,d, 3,d, 2,d, 5,d, 3,d)
p1 = [0.5,0.25,0.75].choose
p2 = p1*-1
ro = 64/4
root = [:c2]
#root = [:fs1]
ro2 = 16
#root = knit(:c2,ro2*3, :ds2,ro2, :fs2,ro2, :cs2,ro2)
#root = knit(:c2,ro*3, :as1,ro)
r1 = 2
elec_tick = knit(1,r1, 2,r1, 3,r1, 4,r1 ).look
use_synth_defaults amp: 1+A.look, release: 0.1+B.look/1.25, cutoff: 75+A.look*20
/Manual mixer/ # 0 off, 1 on # change here
# # Possible progression
# root # :c2 :fs1
# A1 /saw bass 1/ # 0 0 1 1 1
# A2 /tri bass 2/ # 1 1 1 1 1
# A3 /top/ # 0 0 0 1 1
# A4 /hihat + ping/ # 0 1 1 0 1
# A5 /kick/ #
# A6 /kick+more/ #
A1 = 1
A2 = 1
A3 = 1
A4 = 1
A5 = 1
A6 = 1
/Auto mixer/
A1 = [1,0].choose
A2 = [1,1,0].choose
A3 = [1,0].choose
A4 = [1,0].choose
A5 = [1,0].choose
A6 = [1,0].choose
case A1
when 0
when 1
/bass 1/
use_synth :saw
play root.look, pan: p1 if spread(3,5).look
end
case A2
when 0
when 1
/bass 2/
use_synth :tri
play root.look, pan: p2 if spread(3,5).look
end
case A3
when 0
when 1
/top/ # Perhaps create a "toproot", since major/minor dont match when you change "root" with "D = knit(0,d, 3,d, 2,d, 5,d, 3,d)"
use_synth :saw #:tri
play root.look+12+D.look+12 if spread(5,7).look
end
case A4
when 0
when 1
with_fx :reverb, room: 0.9 do
with_fx :ping_pong do |ping|
/hihat/
sample :elec_tick, amp: 1+A.look+2, rate: [3,2,1].look, pan: rrand(-1,1) if spread(elec_tick,6).look and one_in(3)
control ping, mix: [0,0,0,0.25,0.25,0.25,0.8].choose
end
end
end
case A5
when 0
when 1
/kick/
sample :bd_fat, amp: 4, rate: 1 if spread(1,20).look
end
case A6
when 0
when 1
/kick/
sample :bd_fat, amp: 4, rate: 1 if bools(1,1,1,0, 0,0,0,0).look
sample :bd_fat, amp: 2, rate: 2, pan: rrand(0.25,-0.25) if spread(2,20).look
sample :bd_fat, amp: 3, rate: 4, pan: rrand(0.5,-0.5) if spread(3,20).look
end
sleep 0.25
end