Final Fantasy VII Prelude arpeggios
This commit is contained in:
parent
b861f0952c
commit
3f76afc6aa
1 changed files with 52 additions and 0 deletions
52
sonicpi/ff-prelude-arpeggios.rb
Normal file
52
sonicpi/ff-prelude-arpeggios.rb
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
# Welcome to Sonic Pi v3.1
|
||||||
|
|
||||||
|
use_bpm 100
|
||||||
|
|
||||||
|
with_fx :reverb, room: 0.85, damp: 0.8 do
|
||||||
|
with_fx :echo, pre_mix: 0.6, mix: 0.4, phase: 0.5, decay: 0.8 do
|
||||||
|
live_loop :updown do
|
||||||
|
use_synth :sine
|
||||||
|
|
||||||
|
progression = [[:c4, :major],
|
||||||
|
[:a3, :minor],
|
||||||
|
[:c4, :major],
|
||||||
|
[:a3, :minor],
|
||||||
|
[:f3, :major],
|
||||||
|
[:g3, :major]]
|
||||||
|
arpeggio = [0, 1, 2, 4]
|
||||||
|
|
||||||
|
num_octaves = 4
|
||||||
|
duration = 0.25
|
||||||
|
|
||||||
|
progression.each do |chord|
|
||||||
|
scale_notes = scale chord[0], chord[1] # encode this...
|
||||||
|
|
||||||
|
num_octaves.times do |oct|
|
||||||
|
puts "octave: #{oct}"
|
||||||
|
arpeggio.each do |note|
|
||||||
|
play scale_notes[note] + oct*12
|
||||||
|
sleep duration
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Top note of the arpeggio is the tonic.
|
||||||
|
play scale_notes[0] + num_octaves*12
|
||||||
|
sleep duration
|
||||||
|
|
||||||
|
(num_octaves-1).times do |oct|
|
||||||
|
puts "octave: #{oct}"
|
||||||
|
arpeggio.reverse_each do |note|
|
||||||
|
play scale_notes[note] + (num_octaves-oct-1)*12
|
||||||
|
sleep duration
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Play the last octave separately 'cause it's different from the rest.
|
||||||
|
arpeggio.select { |a| a != 1 }.reverse_each do |note|
|
||||||
|
play scale_notes[note]
|
||||||
|
sleep duration
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue