# 260406 2221 Playing with new minimal mixer structure saw beep and kick
# Saved 260406 2221
# Performance https://youtu.be/JJu24J976Q8
# https://in-thread.sonic-pi.net/t/playing-with-new-minimal-mixer-structure-saw-beep-and-kick/9969
set_volume! 1
use_bpm 45
/ manual mixer /
set :mixer, [0, 0, 0] # bass, beep arp 1-2(0-12 oct), kick
#set :mixer, [0, 0, 1] #
#set :mixer, [0, 0, 2] #
#set :mixer, [1, 0, 0] #
#set :mixer, [1, 0, 1] #
#set :mixer, [1, 0, 2] #
set :mixer, [1, 1, 1] #
set :mixer, [1, 2, 1] #
#set :mixer, [1, 1, 0] #
#set :mixer, [0, 1, 0] #
/ auto mixer /
live_loop :mixer do
tick
k = 32
prog = knit(1,k*0.5, 2,k*0.5, 3,k, 4,k*2).look # for auto play
#prog = knit(1,k*0.5, 2,k*0.5, 3,k, 4,k*2, 1,k*0.5, 0,k).look #for recording
#prog = 4
case prog
when 0
set :mixer, [0,0,0]
when 1
set :mixer, [0,1,0] # bass, beep arp 1-2(0-12 oct), kick
when 2
set :mixer, [0,2,1]
when 3
set :mixer, [1,2,1]
when 4
set :mixer, [1,1,1]
end
puts get[:mixer] if spread(1,k*0.5).look
sleep 0.25
end
with_fx :ping_pong do |pp|
#with_fx :reverb, room: 0.4 do |pp|
#with_fx :bitcrusher do |pp|
live_loop :a1 do
tick
#control pp, mix: 0
density d = [1,1,1,1,1,1,2,4].choose do
/ bass /
control pp, mix: [0,0.2,0.4].choose
if get(:mixer)[0] == 1
n = :f2
use_synth :saw
use_synth_defaults release: [0.1,0.2,0.3].choose+0.2, cutoff: line(80,130,steps: 10).choose-20
#play n-12 if spread(2,7).look
play n if spread(2,7).look
end
/ beep arp /
control pp, mix: [0,0.2,0.4,0.6].choose
if get(:mixer)[1] == 1
n = [:f5+3, :f5+3-1, :f4, :f4+7, :f4+7+1].look
use_synth :beep
use_synth_defaults release: [0.1,0.2,0.4].choose, cutoff: 80
play n if spread(6,7).look
end
if get(:mixer)[1] == 2
n = [:f5+3, :f5+3-1, :f4, :f4+7, :f4+7+1].look-12
use_synth :beep
use_synth_defaults release: [0.1,0.2,0.4].choose, cutoff: 80
play n if spread(6,7).look
end
/ kick /
control pp, mix: [0,0.2].choose
if get(:mixer)[2] == 1
sample :bd_fat, amp: 3+rdist(0.5) if spread(2,4).look
end
sleep 0.25
end
end
end