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