Last active
November 16, 2017 18:47
-
-
Save rbnpi/ed32fa1148fee86502912ec69203f6e1 to your computer and use it in GitHub Desktop.
16th century dance by Thoinot Arbeau called Jouyssance Vous Donneray arranged for Sonic Pi. Copy the code to a buffer to play it. You can hear at https://soundcloud.com/user-195236670/jouyssance
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
#jouyssance.rb | |
#Jouyssance Vous Donneray music by Thoinot Arbeau c 1520 - c 1595 | |
#arranged for Sonic Pi by Robin Newman, November 2017 | |
with_fx :reverb,room: 0.8,mix: 0.6 do | |
with_fx :level do |v| | |
use_bpm 160 | |
flag=0;bass=0 | |
#change vol after 0,48,96,120,192,216 beats | |
at [0,48,96,120,144,192,216], [1, 0.5, 0.7,0.9,0.5,0.8,1.2] do |n| | |
control v,amp: n | |
end | |
at [0,48,96,120,144,192,216], [0,1,0,1,1,0,1] do |f| | |
flag=f | |
end | |
at [0,216],[0,1] do |b| | |
bass = b | |
end | |
use_synth :tri | |
#first part data | |
a1=[] | |
b1=[] | |
a1=[:D4,:D4,:D4,:F4,:E4,:D4,:C4,:F4,:G4,:E4,:F4,:G4,:A4,:A4,:A4,:G4,:F4,:G4,:A4,:Bf4,:C5,:C5,:Bf4,:A4,:Bf4,:A4,:G4,:F4,:G4,:E4,:F4,:F4,:A4,:G4,:A4,:D4,:D4,:E4,:F4,:G4,:F4,:E4,:D4,:C4,:C4,:C5,:Bf4,:A4,:G4,:F4,:E4,:F4,:Bf4,:A4,:G4,:F4,:E4,:D4,:C4,:D4,:D4,:C4,:D4,:D4,:D4,:D4,:D4,:F4,:E4,:D4,:C4,:F4,:G4,:E4,:F4,:G4,:A4,:A4,:A4,:G4,:F4,:G4,:A4,:Bf4,:C5,:C5,:Bf4,:A4,:Bf4,:A4,:G4,:F4,:G4,:E4,:F4,:F4,:A4,:G4,:A4,:D4,:D4,:E4,:F4,:G4,:F4,:E4,:D4,:C4,:C4,:C5,:Bf4,:A4,:G4,:F4,:E4,:F4,:Bf4,:A4,:G4,:F4,:E4,:D4,:C4,:D4,:D4,:C4,:D4,:D4,:D5,:D5,:D5,:C5,:B4,:C5,:D5,:E5,:D5,:C5,:B4,:A4,:B4,:G4,:A4,:A4,:A4,:G4,:A4,:B4,:C5,:D5,:E5,:D5,:C5,:B4,:A4,:B4,:A4,:G4,:A4,:B4,:G4,:A4,:A4,:D5,:D5,:D5,:C5,:B4,:C5,:D5,:E5,:D5,:C5,:B4,:A4,:B4,:G4,:A4,:A4,:A4,:G4,:A4,:B4,:C5,:D5,:E5,:D5,:C5,:B4,:A4,:B4,:A4,:G4,:A4,:B4,:G4,:A4,:A4,:D4,:C4,:D4,:E4,:D4,:E4,:F4,:E4,:D4,:C4,:F4,:E4,:D4,:E4,:F4,:G4,:A4,:A4,:A4,:G4,:F4,:G4,:A4,:Bf4,:C5,:Bf4,:C5,:D5,:C5,:A4,:Bf4,:A4,:G4,:F4,:G4,:E4,:F4,:F4,:A4,:G4,:A4,:D4,:D4,:E4,:F4,:G4,:F4,:E4,:D4,:C4,:C4,:C5,:Bf4,:A4,:G4,:F4,:E4,:F4,:Bf4,:A4,:G4,:F4,:E4,:D4,:C4,:D4,:D4,:C4,:D4,:D4,:D4,:C4,:D4,:E4,:D4,:E4,:F4,:E4,:D4,:C4,:F4,:E4,:D4,:E4,:F4,:G4,:A4,:A4,:A4,:G4,:F4,:G4,:A4,:Bf4,:C5,:Bf4,:C5,:D5,:C5,:A4,:Bf4,:A4,:G4,:F4,:G4,:E4,:F4,:F4,:A4,:G4,:A4,:D4,:D4,:E4,:F4,:G4,:F4,:E4,:D4,:C4,:C4,:C5,:Bf4,:A4,:G4,:F4,:E4,:F4,:Bf4,:A4,:G4,:F4,:E4,:D4,:C4,:D4,:D4,:C4,:D4,:D4] | |
b1=[1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,1.0,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,1.0,1.0,1.0,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,1.0,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,1.0,1.0,1.0,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,1.0,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,1.0,1.0,1.0,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,1.0,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,1.0,1.0,1.0,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0,0.5,0.5,0.5,0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,2.0,1.0] | |
in_thread do | |
for j in 0..a1.length-1 | |
play a1[j]+12,sustain: b1[j]*0.9,release: b1[j]*0.1,pan: -0.5 if flag==1 #add octave note | |
play a1[j],sustain: b1[j]*0.9,release: b1[j]*0.1,pan: -0.5 | |
sleep b1[j] | |
end | |
end #thread | |
#second part data | |
a2=[] | |
b2=[] | |
a2=[:A4,:A4,:A4,:A4,:G4,:F4,:G4,:A4,:E4,:E4,:F4,:F4,:F4,:A4,:C5,:G4,:G4,:E4,:G4,:D4,:C4,:A4,:A4,:F4,:E4,:E4,:F4,:F4,:G4,:G4,:G4,:G4,:G4,:A4,:F4,:A4,:A4,:F4,:F4,:G4,:E4,:A4,:F4,:A4,:A4,:A4,:A4,:A4,:G4,:F4,:G4,:A4,:E4,:E4,:F4,:F4,:F4,:A4,:C5,:G4,:G4,:E4,:G4,:D4,:C4,:A4,:A4,:F4,:E4,:E4,:F4,:F4,:G4,:G4,:G4,:G4,:G4,:A4,:F4,:A4,:A4,:F4,:F4,:G4,:E4,:A4,:F4,:A4,:A4,:F4,:A4,:A4,:E4,:G4,:B4,:G4,:E4,:E4,:E4,:C5,:C5,:G4,:C5,:B4,:G4,:E4,:E4,:G4,:E4,:E4,:A4,:F4,:A4,:A4,:E4,:G4,:B4,:G4,:E4,:E4,:E4,:C5,:C5,:G4,:C5,:B4,:G4,:E4,:E4,:G4,:E4,:E4,:A4,:A4,:A4,:A4,:G4,:F4,:G4,:A4,:A4,:D4,:F4,:F4,:F4,:A4,:C5,:G4,:G4,:E4,:G4,:D4,:C4,:A4,:A4,:F4,:E4,:E4,:F4,:F4,:C5,:G4,:G4,:G4,:G4,:A4,:F4,:A4,:A4,:F4,:F4,:G4,:E4,:A4,:F4,:F4,:A4,:A4,:A4,:A4,:G4,:F4,:G4,:A4,:A4,:D4,:F4,:F4,:F4,:A4,:C5,:G4,:G4,:E4,:G4,:D4,:C4,:A4,:A4,:F4,:E4,:E4,:F4,:F4,:C5,:G4,:G4,:G4,:G4,:A4,:F4,:A4,:A4,:F4,:F4,:G4,:E4,:A4,:F4,:F4] | |
b2=[1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0] | |
in_thread do | |
for j in 0..a2.length-1 | |
play a2[j],sustain: b2[j]*0.9,release: b2[j]*0.1,pan: 0.5 | |
sleep b2[j] | |
end | |
end #thread | |
#third aprt: use differnt synth and volume to blend | |
use_synth :pulse | |
use_synth_defaults amp: 0.4 | |
a3=[] | |
b3=[] | |
a3=[:D3,:F3,:C3,:F3,:G3,:F3,:A3,:F3,:A3,:G3,:A3,:G3,:Bf3,:C4,:F3,:F3,:G3,:A3,:D3,:C3,:C3,:F3,:D3,:F3,:D3,:C3,:A3,[:D3,:A3],:D3,:F3,:C3,:F3,:G3,:F3,:A3,:F3,:A3,:G3,:A3,:G3,:Bf3,:C4,:F3,:F3,:G3,:A3,:D3,:C3,:C3,:F3,:D3,:F3,:D3,:C3,:A3,[:D3,:A3],:D3,:A3,:A3,:C4,:G3,:E3,:A3,:F3,:G3,:A3,:G3,:E3,:A3,:D3,:A3,:A3,:C4,:G3,:E3,:A3,:F3,:G3,:A3,:G3,:E3,:A3,:D3,:C3,:D3,:F3,:F3,:A3,:G3,:F3,:F3,:G3,:A3,:D3,:C3,:C3,:F3,:D3,:C3,:A3,[:D3,:A3],:D3,:C3,:D3,:F3,:F3,:A3,:G3,:F3,:F3,:G3,:A3,:D3,:C3,:C3,:F3,:D3,:C3,:A3,[:D3,:A3]] | |
b3=[3.0,1.0,2.0,1.0,2.0,3.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,3.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0,1.0,1.0,1.0,2.0,1.0,3.0,3.0,1.0,2.0,1.0,2.0,3.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,3.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0,1.0,1.0,1.0,2.0,1.0,3.0,3.0,1.0,1.0,1.0,2.0,1.0,3.0,2.0,1.0,1.0,2.0,3.0,3.0,3.0,1.0,1.0,1.0,2.0,1.0,3.0,2.0,1.0,1.0,2.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0,3.0,2.0,1.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0,3.0,2.0,1.0,3.0] | |
in_thread do | |
for j in 0..a3.length-1 | |
play a3[j],sustain: b3[j]*0.9,release: b3[j]*0.1 | |
if bass==1 | |
with_transpose -12 do#use this method as one chord in list: can't just subtract 12 | |
play a3[j],sustain: b3[j]*0.9,release: b3[j]*0.1 | |
end | |
end | |
sleep b3[j] | |
end | |
end #thread | |
#add rhythm live loop. Stop after 80 bars (look == 79) | |
live_loop :rhythm do | |
tick | |
use_bpm 160 | |
sample :drum_snare_hard | |
sleep 1 | |
sample :drum_snare_soft | |
sleep 0.5 | |
sample :drum_snare_soft | |
sleep 0.5 | |
sample :drum_snare_hard | |
sleep 1 | |
stop if look == 79 | |
end# live_loop | |
end #level | |
end #reverb |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment