The Funkinator

(c) JohnRohde

Skal lyttes til med gode hovedtelefoner ellers taber den halvdelen af funk'en.

# The Funkinator

use_bpm 66

with_fx :compressor, pre_amp: 2 do
  
  # Intro, comment out after launch
  #mainbeat
  #breakbeat
  
  # Acid bass, adapted from Sams book
  use_synth :tb303
  
  with_fx :reverb, room: 0.8 do
    live_loop :space_scanner do
      with_fx :slicer, phase: 0.25, amp: 0.06 do
        play :e1, cutoff: rrand(70, 90), release: 5, attack: 1,
          cutoff_attack: 3, cutoff_release: 3, res: 0.95,
          pan: rrand(-0.5, 0.5)
        sleep 6
      end
    end
    
    live_loop :squelch do
      sync :beat
      squeek
    end
  end
  
  
  # Random melody, now with extra FUNK!!!
  with_fx :reverb, room: 0.8 do
    live_loop :lyrics do
      sync :beat
      foxmike TRUE
      sleep 0.25
      foxmike TRUE if !one_in(6)
    end
  end
  
  
  # Drummer loop, drives beat cue
  live_loop :drummer do
    8.times do
      mainbeat
    end
    breakbeat
  end
end

# ---------------------------

define :foxmike do |fm|
  n = rand_i(6)
  if n == 0
    ch = chord(:E6, :major7)
  elsif n == 1
    ch = chord(:E4, :major)
  else
    ch = chord(:E5, :major)
  end
  
  # Random note in chord
  if fm == TRUE
    use_synth :fm
    play choose(ch), release: 0.3, cutoff: rrand(60, 130),
      amp: rrand(0.4, 0.7), pan: rrand(-0.5, 0.5),
      divisor: dice(3), depth: dice(4)
  else
    use_synth :blade
    play choose(ch), release: 0.3, cutoff: rrand(60, 105),
      amp: rrand(1, 2), pan: rrand(-0.5, 0.5),
      divisor: dice(8), depth: dice(8)
  end
end

# ---------------------------

define :squeek do
  notes = (ring :e1, :e2, :e3, :e4, :e5, :e4, :e5)
  play notes.tick, release: 0.20, cutoff: rrand(70, 130),
    res: 0.95, wave: 1, amp: 0.06, phase: 1,
    pan: rrand(-0.5, 0.5)
end

# ---------------------------

define :mainbeat do
  cue :beat
  cue :start
  sample :drum_cymbal_closed, amp: 1.6
  sample :drum_cowbell, amp: 0.2
  sample :bd_808, amp: 6
  sleep 0.25
  sample :drum_cymbal_closed, amp: 1.6
  sample :drum_cowbell, amp: 0.2
  sleep 0.25
  
  cue :beat
  sample :drum_cymbal_closed, amp: 1.6
  sample :sn_dub, amp: 0.6
  sleep 0.25
  sample :drum_cymbal_closed, amp: 1.6
  sample :drum_cowbell, amp: 0.2
  sample :bd_808, amp: 6
  sleep 0.25
  
  cue :beat
  sample :drum_cymbal_closed, amp: 1.6
  sample :bd_808, amp: 6
  sleep 0.25
  sample :drum_cymbal_closed, amp: 1.6
  sample :bd_808, amp: 6
  sleep 0.25
  
  cue :beat
  sample :drum_cymbal_closed, amp: 1.6
  sample :sn_dub, amp: 0.6
  sleep 0.25
  sample :drum_cymbal_closed, amp: 1.6
  sleep 0.25
end

# ---------------------------

define :breakbeat do
  sample :drum_cymbal_closed, amp: 1.6
  sample :bd_808, amp: 6
  sample :sn_dub, amp: 1.2
  sleep 0.25
  sample :drum_cymbal_closed, amp: 1.6
  sleep 0.25
  
  sample :drum_cymbal_closed, amp: 1.6
  sample :bd_808, amp: 6
  sample :sn_dub, amp: 1.2
  sleep 0.25
  sample :drum_cymbal_closed, amp: 1.6
  sleep 0.25
  
  sample :drum_cymbal_closed, amp: 1.6
  sample :sn_dub, amp: 1.2
  sleep 0.25
  sample :drum_cymbal_closed, amp: 1.6
  sample :bd_808, amp: 6
  sleep 0.25
  
  sample :drum_cymbal_closed, amp: 1.6
  sample :sn_dub, amp: 1.2
  sleep 0.25
  sample :drum_cymbal_closed, amp: 1.6
  sample :bd_808, amp: 6
  sleep 0.25
end


Retur til StartSide