Gravity Falls Theme cover

My bad, messy gravity falls theme tune cover.

This is the song I’m covering:

This is my cover:

# Gravity Falls melody

use_bpm 160
set_mixer_control! amp: 0.5

define :play_whistle do |melody, timing,fin|
  use_synth :pulse
  a = 1.5
  with_fx :lpf, cutoff: 78 do
    with_fx :hpf, cutoff: 80 do
      melody.each_with_index do |key, i|
        length = timing[i]
        play key, amp: a, \
          attack: length*0.3, \
          decay: length*0.6, \
          sustain: length*0.1, \
          release: 0.01, \
          amp_slide: 0.5
        sleep length
        a -= (0.5/14) if fin
      end
    end
  end
end

define :play_bass do |melody, timing|
  use_octave -1
  use_synth :pluck
  use_synth_defaults amp: 0.7 #, sustain: 0.5, release: 1
  with_fx :reverb do
    with_fx :lpf, cutoff: 75 do
      melody.each_with_index do |key, i|
        length = timing[i]
        play key, attack: 0.01, decay: 0.3*length*2, sustain: 0.2*length*2, release: 0.05
        sleep length
      end
    end
  end
end

intro_melody = \
  [:f ,:d ,:a3,:d ,:f ,:d ,:a3,:d ] + \
  [:f ,:c ,:a3,:c ,:f ,:c ,:a3,:c ] + \
  [:e ,:cs,:a3,:cs,:e ,:cs,:a3,:cs] + \
  [:e ,:cs,:a3,:cs,:e ,:a]
intro_timing = 0.5

melody = [
  {notes:  [:d,:e,:f,:a ,:g ,:a,:c],
   timing: [ 3, 1, 4,1.5,1.5, 1, 4]},
  {notes:  [:d,:e,:f,:e,:g,:a,:g,:f],
   timing: [ 3, 1, 2, 2, 2, 2, 2, 2]},
  {notes:  [:r,:f,:f,:f,:a,:a,:g,:f] + \
   [:r ,:a ,:a ,:a,:g ,:a ,:g ,:f ], timing: ring(1)},
  {notes:  [:r ,:f ,:f ,:f,:a ,:a ,:g ,:f] + \
   [:r ,:a ,:a ,:a,:r ,:cs5,:cs5,:cs5], timing: ring(1)},
  {notes:  [:r,:f,:f,:f,:a,:a,:g,:f,:r,:bb,:bb,:bb] + \
   [:g ,:c5], timing: [1]*12 + [2,2]}
]

outro_melody = \
  [:a ,:cs5 ] + \
  [:f5 ,:d5 ,:f5 ,:d5,:a,:cs5,:e5,:cs5 ] + \
  [:d5,:r,[:d5,:d],:r ]
outro_timing = [2,2] + [0.5]*8 + [1,1,1,2]

bass = [
  {notes: [:d3,:a3,:d,:a3,:d3,:a3,:d,:a3,:d3,:a3,:d,:a3] +\
   [:d3,:a3,:d,:f3,:c,:f,:c,:f3,:c,:f,:c,:f3,:c,:f,:c,[:f3,:f],[:e3,:e]],
   timing: [0.5]*14+[1]+[0.5]*12+[1,1]},
  {notes: [:bb2,:f3,:bb3,:f3,:bb2,:f3,:bb3,:f3,:bb2,:f3,:bb3,:f3] +\
   [:bb2,:f3,:bb3,:c3,:g3,:c,:g3,:c3,:g3,:c,:a3,:e,:a,:e,:a3,:e,:a],
   timing:[0.5]*14+[1]+([0.5]*6+[1])*2},
  {notes: [:d3,:a3,:d,:a3,:d3,:a3,:d,:d3,:a3,:d,:a3,:d3,:a3,:d] +\
   [:f3,:c,:f,:c,:f3,:c,:f,:f3,:c,:f,:c,:f3,:c,:f],
   timing: ([0.5]*6+[1])*4},
  {notes:
   [:bb2,:f3,:bb3,:f3,:bb2,:f3,:bb3]*2 +\
   [:c3,:g3,:c,:g3,:c3,:g3,:c,:a2,:e3,:a3,:e3,:a2,:e3,:a3],
   timing: ([0.5]*6+[1])*4},
  {notes:
   [:d3,:a3,:d,:a3,:d3,:a3,:d,:f3,:c,:f,:c,:f3,:c,:f] +\
   [:bb2,:f3,:bb3,:f3,:bb2,:f3,:bb3,:c3,:g3,:c,:g3,[:c3,:c]],
   timing: ([0.5]*6+[1])*3+[0.5]*4+[2]},
]

sleep 1
4.times do
  sample :perc_snap, lpf: 100, beat_stretch: 1
  sleep 1
end


in_thread do
  use_synth :pluck
  use_synth_defaults amp: 0.6, sustain: 0.5, release: 1
  use_octave 1
  sample :ambi_dark_woosh, amp: 0.6, pitch: -18, pitch_stretch: 16
  with_fx :reverb, room: 1 do
    play_pattern_timed intro_melody, intro_timing
  end
  
  cue :backing
  melody.each_with_index do |measure,idx|
    play_whistle measure[:notes], measure[:timing], idx==4
  end
  use_synth_defaults cutoff: 90, attack: 0.1, sustain: 0.25, release: 0.75
  out_amp = 0.05
  outro_melody.each_with_index do |key,idx|
    play key, amp: out_amp, amp_slide: 1
    sleep outro_timing[idx]
    out_amp += 0.8/14
  end
  #play_pattern_timed outro_melody, outro_timing
end

in_thread do
  sync :backing
  bass.each do |measure|
    play_bass measure[:notes], measure[:timing]
  end
end

in_thread do
  sync :backing
  clap1 =  {amp: 1, lpf: 70, rate: 0.5}
  clap2 =  {amp: 0.8, lpf: 90, rate: 1}
  20.times do
    sample :perc_snap, clap1
    sleep 1
    sample :perc_snap, clap2
    sleep 1
    sample :perc_snap, clap1
    sleep 0.5
    sample :perc_snap, clap2
    sleep 1.5
  end
end

in_thread do
  sync :backing
  160.times do
    sample :drum_cymbal_closed, amp: 0.7, lpf: 90 # if (spread 22,32).tick
    sleep 0.5
  end
end
2 Likes

Hi theibbster,

nice work so far. With this cover you will most likely have a lot to do in the sound design arena to get similar sounding sounds as used in the original. That would most likely be the main work to do. After this mixing and mastering it needs quite some work, too. If you listen closely to the original, there are a lot of small little details. If you want to get really close than this will most likely be a long road of learning and work. I’m working on a cover myself and it’s a long road, too :slight_smile:
I wish you high endurance and keep up the motivation!

Cu.

Thanks for the encouragement, Cu!

Will take a while before I can do any of that, Sonic Pi is my first foray into music aside from the four chords I know on the Ukulele :smiley:

I’m mostly working on basics at the moment. My hope is to combine with some visuals using Processing after I can make some sounds that aren’t terrible haha

1 Like