Skip to content

Instantly share code, notes, and snippets.

@rbnpi
Last active November 16, 2017 18:47
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/ed32fa1148fee86502912ec69203f6e1 to your computer and use it in GitHub Desktop.
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
#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