# 230102 2045 Max Cooper Spike inspired YT
# Saved 230102 2045
# My performance https://youtu.be/L7NIuUEr05w
# https://in-thread.sonic-pi.net/t/max-cooper-spike-inspired-yt/8491
# Jumping off point
## Max Cooper - Spike (Official video by Yoshi Sodeoka)
## https://www.youtube.com/watch?v=ktn628Bvhc8
## //Hydra Glitchy Slit Scan
## https://hydra.ojack.xyz/?sketch_id=flor_1
use_bpm 123
/ drums and more/
with_fx :reverb, room: 0.4 do
live_loop :d1 do
tick
amp = 1.5 #1.5
k = 128
drummixer = knit(0,k,1,k).look
# drummixer = 1
#drummixer = 0
case drummixer
when 0
# sample :bd_fat, amp: 4 if spread(1,32).look
when 1
#amp = 0
/ A kick+snare /
# sample :bd_fat, amp: 4 if spread(1,32).look
sample :bd_tek, pan: rdist(0.15), amp: amp if (spread(1,4)*6+bools(1,1,0,1,0,1,1,0)).look
sample :sn_generic, pan: rdist(0.15), amp: amp, start: 0.075, cutoff: line(100,130,steps: 64).mirror.look if spread(1,32).rotate(4).look
on spread([7,9,11].choose,16).rotate(2).look do
sample :elec_tick, rpitch: 10.25, amp: amp-0.75
# insert 'hats' variation here
end
/ B offbeat short noise /
on spread(1,8).look do
use_synth :noise
use_synth_defaults release: 0.05125, attack: [0,0.05125,0,0].look, amp: [0,2,0,0].look, cutoff: 130
play :c2
end
end
sleep 0.25
end
with_fx :ixi_techno, mix: 0.5 do #|ixi|
/ weird high pitch sounds (missing to be out in auto pilot - add manually currently)/
define :samp do |s, num, sl, rp, ra, pan, amp, cut|
sample s, num_slices: num, slice: sl, rpitch: rp, rate: ra, pan: rdist(pan), amp: amp, cutoff: cut
end
live_loop :ar1 do
tick
#control :ixi, mix = [0,0.2,0.4].choose
sample :bd_fat, amp: 4 if spread(1,16).look
k = 32
weird = knit(0,k,2,k).look
puts 'weird =',weird if spread(1,k).look
weird = 2
#weird = 0
amp = 1.5+1
one_in = 0 # 0,1 or 4
one_in = 1
one_in = knit(0,128,1,128).look
#one_in = 8
case weird
when 0
sleep 0.5
when 1 # (doesnt work yet - some high pitch stuff to loud)
#s = :arovane_beat_a # nice
#samp s, 64,rrand_i(1,32), 12+12+12,2, 0.75,amp,[110,100,90].choose if one_in(2)
sleep 0.5
when 2
s = :arovane_beat_e
density [3,1,1,1,1,1,1].look do
samp s, 64,rrand_i(1,64), 12+12+12,2, 0.75,amp,[130,120,110,100,90].choose if one_in(one_in)
sleep 0.5
end
end
end
end
end#end_reverb_0.4
with_fx :reverb, room: 0.8 do
/ noise sweep and fills /
live_loop :n do
tick
noise = knit(0,16,1,16,2,16, 0,16,3,16*3).look
puts 'sweep and fills =', noise if spread(1,16).look
#noise = 3
case noise
when 0
sleep 1
when 1
use_synth :noise
use_synth_defaults release: 0.125, attack: [0,1.75,0,0].look, amp: [0,1,0,0].look, cutoff: 110-line(40,0, steps: 128).look
play :c2
sleep 1
when 2
use_synth :noise
density [1,1,1,1,2,3,4].look do
use_synth_defaults release: 0.05125, attack: [0,0.05125,0,0].look, amp: [0,1,0,0].look, cutoff: 130
#play :c2, amp: [0,0.5,0.8,1,2].look#if one_in(2)
play :c2, amp: 1
sleep 1
end
when 3
use_synth :noise
density [1,1,1,3,4].choose do
k=8
use_synth_defaults release: 0.05125, attack: [0,0.05125,0,0].look, amp: [0,1,0,0].look, cutoff: knit(100,k,110,k,120,k,130,k).look
#play :c2, amp: [0,0.5,0.8,1,2].look#if one_in(2)
play :c2#, amp: 1
sleep 1
end
end
end
live_loop :reverse do
tick
#sample 'beat',1, pitch: 24, num_slices: 32, slice: 16, amp: 1
sleep 1
end
/ big synth /
live_loop :a1 do
tick
use_synth :square
c = [60,120,70,70,60].look
r = [0.5,0.1,0.2,0.3].look
r2 = [0.4,0.2,0].look
a1 = rrand(0.9,1.1)
a2 = rrand(0.9,1.1)
a3 = rrand(0.9,1.5)
s1 = s2 = s3 = [0.4,0,0.1,0.2,].look
p1 = rdist(0.25)
p2 = rdist(0.35)
p3 = rdist(0.45)
on bools(1,0,0,1,0,0,1,0, 1,0,0,1,0,1,0,0).look do
use_synth_defaults cutoff: c, release: r+r2, amp: a1, pan: p1, sustain: s1
n = :ds2
play n
use_synth :saw
use_synth_defaults cutoff: c, release: r, amp: a2, pan: p2, sustain: s2
play n
use_synth :sine
use_synth_defaults cutoff: c, release: r, amp: a3, pan: p3, sustain: s3
play n-12
use_synth :prophet
use_synth_defaults cutoff: c-[0,10,20,30].look, release: r, amp: a3, pan: p2, sustain: s2
play n+[0,0,0,12].choose
end
sleep 0.5
end
end
4 Likes
Nice! Some great ideas in here. Love the :ari live_loop.
2 Likes