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