Created
June 2, 2019 15:18
-
-
Save rbnpi/8d0dd0830ec064a6ce1b1c1c515e466a to your computer and use it in GitHub Desktop.
Palestrina (c. 1525-1594) Hosanna played by Sonic Pi from a midi file by Michael Robinson. Use run_file "path-to-PalesHos-RF.rb" to run it.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#PalesHos-RF.rb | |
#Giovanni Pierluigi de Palestrina (c. 1525-1594) Hosanna | |
#transcribed for Sonic Pi by Robin Newman, June 2019 from a midi file by Michael Robinson | |
#http://www.standingstones.com/em_midi.html | |
use_bpm 90 | |
define :plarray do |notes,durations,tp=0,pan=0,vol=1,s=0.9,r=0.1| | |
#puts offsetclass | |
notes.zip(durations).each do |n,d| | |
if n.respond_to?(:each) | |
n.each do |nv| | |
play (note(nv)+tp),sustain: s*d, release: r*d, pan: pan, amp: vol | |
end | |
else | |
play (note(n)+tp),sustain: s*d, release: r*d, pan: pan, amp: vol | |
end | |
sleep d | |
end | |
end | |
with_fx :reverb,room: 0.8,amp: 1.5,mix: 0.7 do | |
with_fx :lpf,cutoff: 90 do #use lpf to reduce percussiveness of saw synth | |
use_synth :saw | |
a1=[:D5,:D5,:G4,:D5,:C5,:D5,:C5,:Bf4,:A4,:Bf4,:A4,:G4,:G4,:F4,:Bf4,:A4,:D5,:D5,:E5,:F5,:E5,:D5,:C5,:Bf4,:A4,:G4,:A4,:G4,:A4,:Bf4,:A4,:D5,:r,:r,:A4,:Bf4,:C5,:D5,:C5,:F5,:F5,:E5,:A4,:r,:A4,:Bf4,:C5,:D5,:C5,:F5,:E5,:D5,:E5,:D5,:F5,:r,:E5,:D5,:C5,:Bf4,:A4,:G4,:F4,:F5,:r,:E5,:D5,:C5,:Bf4,:A4,:G4,:G4,:G4,:A4,:Bf4,:C5,:D5,:C5,:Bf4,:A4,:C5,:Bf4,:A4,:C5,:D5,:E5,:F5,:E5,:D5,:C5,:r,:G4,:A4,:Bf4,:C5,:r,:G4,:A4,:Bf4,:C5,:C5,:D5,:E5,:F5,:E5,:D5,:C5,:Bf4,:A4,:C5,:Bf4,:A4,:C5,:D5,:E5,:F5,:E5,:D5,:D5,:Cs5,:D5,:r,:F4,:G4,:A4,:Bf4,:G4,:Bf4,:A4] | |
b1=[6.0,2.0,2.0,3.0,1.0,1.5,0.5,0.5,0.5,2.0,1.5,0.5,2.0,1.0,2.0,1.0,1.0,1.0,1.0,1.5,0.5,3.0,1.0,1.0,2.0,1.0,1.5,0.5,1.0,1.0,2.0,4.0,2.0,4.0,1.5,0.5,1.0,2.0,1.0,1.0,1.0,2.0,4.0,1.0,1.5,0.5,1.0,3.0,1.0,2.0,1.0,1.0,2.0,1.0,1.25,0.25,0.5,0.5,0.5,1.0,1.0,2.0,1.0,1.25,0.25,0.5,0.5,0.5,1.0,1.0,2.0,4.0,1.5,0.5,0.5,0.5,2.0,0.5,0.5,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,4.0,1.0,1.0,1.0,1.0,6.0,2.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.5,0.5,1.0,0.5,0.5,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.5,0.5,2.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,4.0,4.0] | |
in_thread do | |
plarray(a1,b1,0,-0.9,0.7) | |
end | |
a2=[:E4,:Fs4,:G4,:A4,:G4,:C5,:A4,:B4,:C5,:A4,:B4,:C5,:B4,:A4,:A4,:G4,:C5,:B4,:A4,:r,:B4,:B4,:E4,:G4,:A4,:B4,:G4,:E4,:Fs4,:G4,:E4,:r,:E4,:Fs4,:G4,:A4,:G4,:C5,:C5,:B4,:A4,:G4,:Fs4,:E4,:G4,:Fs4,:E4,:Fs4,:G4,:A4,:B4,:r,:r,:E4,:Fs4,:G4,:A4,:G4,:C5,:B4,:B4,:B4,:r,:E4,:Fs4,:G4,:A4,:G4,:C5,:C5,:B4,:E4,:r,:C5,:B4,:A4,:G4,:F4,:E4,:D4,:A3,:r,:B3,:C4,:D4,:E4,:Fs4,:G4,:B4,:B4,:B4,:r,:E4,:G4,:Fs4,:B4,:A4,:G4,:Fs4,:A4,:G4,:E4,:r,:Fs4,:G4,:A4,:B4,:A4,:G4,:G4,:Fs4,:G4,:A4,:B4,:A4,:G4,:r,:r,:G4,:G4,:A4,:B4,:B4,:C5,:B4,:r,:G4,:A4,:B4,:C5,:B4,:A4,:C5,:B4,:A4,:G4,:A4,:Af4] | |
b2=[1.5,0.5,1.0,2.0,1.0,3.0,1.0,1.0,1.0,1.5,0.5,1.0,1.5,0.5,2.0,1.0,2.0,2.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0,2.0,2.0,1.5,0.5,2.0,2.0,2.0,1.5,0.5,1.0,2.0,1.0,1.0,1.0,1.5,0.5,3.0,0.5,0.5,1.0,1.0,0.5,0.5,0.5,0.5,2.0,2.0,2.0,1.5,0.5,1.0,2.0,1.0,1.0,1.0,2.0,2.0,2.0,1.5,0.5,1.0,2.0,1.0,1.0,1.0,2.0,4.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.25,0.25,0.5,0.5,0.5,1.0,1.0,1.0,2.0,1.0,6.0,1.0,1.0,1.0,1.0,1.5,0.25,0.25,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.5,0.5,2.0,1.0,1.0,1.0,2.0,2.0,6.0,2.0,1.0,1.0,1.0,1.0,3.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.5,0.5,0.5,0.5,2.0,4.0] | |
in_thread do | |
plarray(a2,b2,-14,-0.3,0.7) | |
end | |
a3=[:r,:r,:A4,:B4,:C5,:D5,:C5,:F5,:F5,:E5,:A4,:r,:r,:r,:E5,:E5,:Fs5,:G5,:Fs5,:E5,:G5,:Fs5,:E5,:G5,:Fs5,:E5,:D5,:C5,:B4,:r,:E5,:G5,:r,:Fs5,:E5,:D5,:E5,:D5,:E5,:Fs5,:G5,:Fs5,:E5,:D5,:C5,:B4,:C5,:B4,:E5,:D5,:E5,:Fs5,:G5,:Fs5,:B5,:A5,:G5,:Fs5,:E5,:r,:B4,:C5,:D5,:E5,:D5,:G5,:r,:Fs5,:E5,:A4,:E5,:A4,:E5,:r,:r,:A4,:B4,:C5,:D5,:C5,:F5,:F5,:E5,:A4,:r,:r,:r,:r,:Fs5,:G5,:A5,:B5,:A5,:G5,:Fs5,:E5,:D5,:Fs5,:E5,:D5,:r,:A4,:B4,:C5,:D5,:C5,:B4,:A4,:G4,:r,:r,:D5,:E5,:Fs5,:G5,:Fs5,:E5,:D5,:C5,:B4,:D5,:E5,:G5,:Fs5,:E5] | |
b3=[4.0,2.0,1.5,0.5,1.0,2.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0,3.0,1.0,1.0,2.0,0.5,0.5,1.0,1.0,1.5,0.5,2.0,2.0,1.0,2.0,1.25,0.25,0.5,0.5,0.5,2.0,2.0,1.0,1.0,1.5,0.5,1.0,0.5,0.5,1.0,1.0,2.0,2.0,1.5,0.5,1.0,2.0,1.0,1.5,0.5,1.0,1.0,2.0,2.0,1.5,0.5,1.0,2.0,1.0,1.0,0.5,0.5,1.0,1.0,2.0,2.0,2.0,2.0,2.0,1.5,0.5,1.0,2.0,1.0,1.0,1.0,2.0,2.0,2.0,4.0,2.0,1.0,1.0,1.0,1.0,1.5,0.5,1.0,0.5,0.5,1.0,1.0,2.0,4.0,1.0,1.0,1.0,1.0,1.5,0.5,1.0,1.0,2.0,4.0,2.0,2.0,1.0,1.0,1.5,0.5,1.0,0.5,0.5,1.0,1.0,1.0,1.0,2.0,16.0] | |
in_thread do | |
plarray(a3,b3,-14,0.3,0.5) | |
end | |
a4=[:r,:r,:r,:r,:E4,:E4,:A3,:E4,:D4,:E4,:D4,:C4,:B3,:E3,:r,:E3,:Fs3,:G3,:A3,:G3,:C4,:B3,:A3,:G3,:r,:r,:B3,:C4,:D4,:E4,:D4,:G4,:Fs4,:E4,:D4,:C4,:B3,:A3,:B3,:G3,:A3,:B3,:E3,:B3,:r,:r,:E3,:Fs3,:G3,:A3,:G3,:C4,:B3,:A3,:D3,:A3,:D3,:A3,:r,:r,:D4,:E4,:Fs4,:G4,:Fs4,:E4,:D4,:C4,:B3,:D4,:C4,:B3,:r,:Fs3,:G3,:A3,:B3,:A3,:G3,:Fs3,:E3,:D3,:Fs3,:E3,:D3,:r,:r,:B3,:C4,:D4,:E4,:D4,:C4,:B3,:A3,:G3,:B3,:A3,:G3,:r,:r,:G3,:A3,:B3,:C4,:B3,:A3,:E4,:A3,:G3,:A3,:E3] | |
b4=[4.0,4.0,4.0,4.0,6.0,2.0,2.0,3.0,1.0,1.5,0.5,2.0,2.0,2.0,2.0,1.5,0.5,1.0,2.0,1.0,4.0,2.0,2.0,4.0,2.0,4.0,1.5,0.5,1.0,2.0,1.0,1.5,0.5,1.0,1.0,1.5,0.5,1.0,1.0,1.5,0.5,1.0,1.0,2.0,4.0,4.0,1.5,0.5,1.0,2.0,1.0,1.5,0.5,1.0,1.0,2.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0,1.5,0.5,1.0,0.5,0.5,1.0,1.0,2.0,4.0,1.0,1.0,1.0,1.0,1.5,0.5,1.0,0.5,0.5,1.0,1.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0,1.5,0.5,1.0,0.5,0.5,1.0,1.0,2.0,2.0,4.0,1.0,1.0,1.0,1.0,1.5,0.5,1.0,1.0,1.0,1.0,6.0,4.0] | |
in_thread do | |
plarray(a4,b4,-2,0.6,0.5) | |
end | |
end#lpf | |
end#reverb |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment