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