Max Cooper Spike inspired YT

# 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