Skip to content

Instantly share code, notes, and snippets.

@rbnpi
Created June 2, 2019 15:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rbnpi/8d0dd0830ec064a6ce1b1c1c515e466a to your computer and use it in GitHub Desktop.
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.
#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