A big mix in Sonic Pi with surfskate YT

# 240928 2202 A big mix in Sonic Pi with surfskate YT
# Saved 240928 2202
# https://youtu.be/LBGArms2_Co
# https://in-thread.sonic-pi.net/t/a-big-mix-in-sonic-pi-with-surfskate-yt/9225



/ Manual mixer with "global variabel" and CASE /
$drums = 1                 # 0-1                           0   1    1    0     1      1         0
$loop_beep_BigReverb = 1   # 0-3                           0   0    0    3     0      0               1
$melshort = 2              # 0-3                           1   1    1    2     3      3             1
$bass = 2                  # 0-3                           1   1    3    2     3      3           2     1
$bass_note = 0             #0 12 12+7 12-2 24 24-7 24-5    0   0   12   24     24    12    0


/auto mixer with define/
define :auto_mixer do |a,b,c,d,e|
  $drums = a                 # 0-1
  $loop_beep_BigReverb = b   # 0-3
  $melshort = c              # 0-3
  $bass = d                  # 0-3
  $bass_note = e             # 0 12 12+7 12-2 24 24-7 24-5
end

live_loop :my_auto_mixer do
  tick
  
  a = 32
  my_auto_mixer = knit(1,a, 2,a, 3,a, 4,a, 5,a, 6,a, 7,a, 8,a, 9,a ,10,a, 11,a, 12,a, 13,a, 14,a, 15,a, 16,a, 17,a, 18,a, 19, a, 20,a, 21,a).ramp.look
  
  puts 'my_auto_mixer =', my_auto_mixer if spread(1,a).look
  
  #my_auto_mixer = 0 # Manuel auto_mixer
  
  case my_auto_mixer
  when 0
    auto_mixer(0,0,0,0,0)
  when 1
    auto_mixer(0,0,1,1,0)
  when 2
    auto_mixer(1,0,1,1,0)
  when 3
    auto_mixer(1,0,1,3,0)
  when 4
    auto_mixer(1,0,1,3,12)
  when 5
    auto_mixer(0,3,2,2,24)
  when 6
    auto_mixer(1,0,3,3,12)
  when 7
    auto_mixer(1,0,3,3,0)
  when 8
    auto_mixer(0,0,3,3,0)
  when 9
    auto_mixer(0,0,3,2,0)
  when 10
    auto_mixer(0,0,1,2,0)
  when 11
    auto_mixer(0,1,1,2,0)
  when 12
    auto_mixer(0,1,1,1,0)
  when 13
    auto_mixer(0,0,0,3,0)
  when 14
    auto_mixer(1,0,0,3,0)
  when 15
    auto_mixer(1,0,2,3,12-5)
  when 16
    auto_mixer(0,0,1,1,0)
  when 17
    auto_mixer(0,0,0,1,0)
  when 18
    auto_mixer(0,0,0,1,12)
  when 19
    auto_mixer(0,0,0,1,24)
  when 20
    auto_mixer(0,0,0,1,36)
  when 21
    auto_mixer(0,0,0,1,48)
  end
  
  sleep 0.25
end


set_volume! 2

class SonicPi::Core::RingVector
  def r(n)
    self.rotate(n)
  end
end

define :s do |a,b|
  spread(a,b)
end

use_bpm 130


with_fx :reverb, room: 0.4 do
  
  live_loop :drums do
    tick
    drums = $drums
    case drums
    when 0
    when 1
      sample :bd_fat, amp: 4 if s(1,4).look
    end
    
    sleep 0.25
  end
  
  with_fx :reverb, room: 0.9 do
    live_loop :mel_loog_beep do
      tick
      
      loop_beep_BigReverb = $loop_beep_BigReverb
      case loop_beep_BigReverb
      when 0
      when 1
        play :a4, amp: 1.25, release: 0.2 if s(1,12*2).look
      when 2
        play :a4, amp: 1.25, release: 0.2 if s(1,12*2).look
        #play :a4, amp: 2, release: 0.2 if s(1,12*2).r(6).look
        play :a4+12, amp: 1, release: 0.2 if s(1,12*2).r(8).look
      when 3
        play :a4, amp: 1.25, release: 0.2 if s(1,12*2).look
        play :a4, amp: 1.25, release: 0.2 if s(1,12*2).r(6).look
        play :a4+12, amp: 1, release: 0.2 if s(1,12*2).r(8).look
      end
      sleep 0.25
    end
  end
  
  live_loop :melshort do
    tick
    use_synth :saw
    use_synth_defaults cutoff: [70,80,90,100,110].choose-20, release: [0,0,0.1,0.2,0.4,0].look+0.1
    melshort = $melshort
    case melshort
    when 0
    when 1
      play :a5, amp: 2 if s(2,knit(6,16,7,1).look).r(2).look and (s(0,6)*3+s(6,6)*2).reverse.look
      # play :a6, amp: 2 if s(2,knit(6,16,7,1).look).r(1).look and (s(0,6)*3+s(6,6)*2).look
    when 2
      #play :a5, amp: 2 if s(2,knit(6,16,7,1).look).r(2).look and (s(0,6)*3+s(6,6)*2).reverse.look
      play :a6, amp: 2 if s(2,knit(6,16,7,1).look).r(1).look and (s(0,6)*3+s(6,6)*2).look
    when 3
      play :a5, amp: 2 if s(2,knit(6,16,7,1).look).r(2).look and (s(0,6)*3+s(6,6)*2).reverse.look
      play :a6, amp: 2 if s(2,knit(6,16,7,1).look).r(1).look and (s(0,6)*3+s(6,6)*2).look
    end
    sleep 0.25
  end
  
  
  
  live_loop :bass do
    tick
    use_synth :prophet
    
    bass = $bass
    case bass
    when 0
    when 1
      / release /
      r = 0.2
      s = r+0.2
      t = r+0.6
      
      / cutoff /
      d = 90
      e = d+5
      f = d+10
      g = d+20
      
      /notes/
      a = :a2+$bass_note
      b = a-2
      c = a+1
      / top /
      use_synth_defaults release: [r,r,s,t,s,s,r,r,t].look, cutoff: [d,e,f,g,e,e,d,d].look+knit(-20,16, -10,16, 0, 32).look
      # play [a,b,c,c,a,a,a,b,].look+12, pan: rdist(0.25) if s(5,6).look
      / bass /
      use_synth_defaults release: [r,r,s,t,s,s,r,r,t].look, cutoff: [d,e,f,g,e,e,d,d].look+knit(-20,16, -10,16, 0, 32).look-20
      play [a,b,c,c,a,a,a,b,].look-12, amp: 2.5 if s(5,6).look
    when 2
      / release /
      r = 0.2
      s = r+0.2
      t = r+0.6
      
      / cutoff /
      d = 90
      e = d+5
      f = d+10
      g = d+20
      
      /notes/
      a = :a2+$bass_note
      b = a-2
      c = a+1
      / top /
      use_synth_defaults release: [r,r,s,t,s,s,r,r,t].look, cutoff: [d,e,f,g,e,e,d,d].look+knit(-20,16, -10,16, 0, 32).look
      play [a,b,c,c,a,a,a,b,].look+12, pan: rdist(0.25) if s(5,6).look
      / bass /
      use_synth_defaults release: [r,r,s,t,s,s,r,r,t].look, cutoff: [d,e,f,g,e,e,d,d].look+knit(-20,16, -10,16, 0, 32).look-20
      #play [a,b,c,c,a,a,a,b,].look-12, amp: 2.5 if s(5,6).look
    when 3
      / release /
      r = 0.2
      s = r+0.2
      t = r+0.6
      
      / cutoff /
      d = 90
      e = d+5
      f = d+10
      g = d+20
      
      /notes/
      a = :a2+$bass_note
      b = a-2
      c = a+1
      / top /
      use_synth_defaults release: [r,r,s,t,s,s,r,r,t].look, cutoff: [d,e,f,g,e,e,d,d].look+knit(-20,16, -10,16, 0, 32).look
      play [a,b,c,c,a,a,a,b,].look+12, pan: rdist(0.25) if s(5,6).look
      / bass /
      use_synth_defaults release: [r,r,s,t,s,s,r,r,t].look, cutoff: [d,e,f,g,e,e,d,d].look+knit(-20,16, -10,16, 0, 32).look-20
      play [a,b,c,c,a,a,a,b,].look-12, amp: 2.5 if s(5,6).look
    end
    
    sleep 0.25
  end
end

1 Like