Skip to content

Instantly share code, notes, and snippets.

@alexglow
Last active December 28, 2020 17:27
Show Gist options
  • Save alexglow/36097586011815ea380502f4e3495293 to your computer and use it in GitHub Desktop.
Save alexglow/36097586011815ea380502f4e3495293 to your computer and use it in GitHub Desktop.
# Sonic Pi tutorial: https://sonic-pi.net/tutorial
# Gymnopédie No. 1 by Erik Satie – sheet music: https://musopen.org/music/8010-3-gymnopedies/
# Coded by Alex Glow
in_thread(name: :bass) do
bass_iter = 0
with_fx :reverb, room: 1 do
2.times do
8.times do
#with_fx :echo, mix: 0.4, phase: 0.4 do
play :G3
sleep 1
play :B4
play :D5
play :Fs5
sleep 2
play :D3
sleep 1
play :A4
play :Cs5
play :Fs5
sleep 2
end
# second go-round
play :Fs3
sleep 1
play :A4
play :Cs5
play :Fs5
sleep 2
play :B2
sleep 1
play :B4
play :D5
play :Fs5
sleep 2
play :E3
sleep 1
play :G4
play :B4
sleep 2
play :E3
sleep 1
play :B4
play :D5
play :G5
sleep 2
play :D3
sleep 1
play :F4
play :A4
play :D5
sleep 2
# part 2
play :A2
sleep 1
play :A4
play :C5
play :E5
sleep 2
play :D3
sleep 1
play :G4
play :B4
play :E5
sleep 2
play :D3
sleep 1
play :D4
play :G4
play :B4
play :E5
sleep 2
play :D3
sleep 1
play :C4
play :E4
play :A4
play :D5
sleep 2
play :D3
sleep 1
play :C4
play :Fs4
play :A4
play :D5
sleep 2
play :D3
sleep 1
play :A4
play :C5
play :F5
sleep 2
play :D3
sleep 1
play :A4
play :C5
play :E5
sleep 2
play :D3
sleep 1
play :D4
play :G4
play :B4
play :E5
sleep 2
play :D3
sleep 1
play :C4
play :E4
play :A4
play :D5
sleep 2
play :D3
sleep 1
play :C4
play :Fs4
play :A4
play :D5
sleep 2
if (bass_iter == 0)
# discordant fork 1
play :E3
sleep 1
play :B4
play :E5
play :G5
sleep 2
play :Fs3
sleep 1
play :A4
play :Cs5
play :Fs5
sleep 2
play :B2
sleep 1
play :B4
play :D5
play :Fs5
sleep 2
play :E3
sleep 1
play :Cs5
play :E5
play :A5
sleep 2
play :E3
sleep 1
play :A4
play :Cs5
play :Fs5
play :A5
sleep 2
play :E3
sleep 1
play :B3
play :A4
play :D5
sleep 1
play :E4
play :B4
play :D5
play :G5
sleep 1
play :A3, release: 3
play :G4, release: 3
play :C5, release: 3
play :E5, release: 3
play :A5, release: 3
play :C6, release: 3
sleep 3
play :D3, release: 3
play :A3, release: 3
play :D4, release: 3
play :D5, release: 3
play :Fs5, release: 3
play :A5, release: 3
play :D6, release: 3
sleep 3
bass_iter = 1
else
# discordant fork 2
play :E3
sleep 1
play :B4
play :E5
play :G5
sleep 2
play :E3
sleep 1
play :A4
play :D5
play :F5
play :A5
sleep 2
play :E3
sleep 1
play :A4
play :C5
play :F5
sleep 2
play :E3
sleep 1
play :C5
play :E5
play :A5
sleep 2
play :E3
sleep 1
play :A4
play :C5
play :F5
play :A5
sleep 2
play :E3
sleep 1
play :B3
play :A4
play :D5
sleep 1
play :E4
play :B4
play :D5
play :G5
sleep 1
play :A3, release: 3
play :G4, release: 3
play :C5, release: 3
play :E5, release: 3
play :A5, release: 3
play :C6, release: 3
sleep 3
play :D3, release: 3
play :A3, release: 3
play :D4, release: 3
play :D5, release: 3
play :F5, release: 3
play :A5, release: 3
play :D6, release: 3
sleep 3
end # bifurcation
end # 2.times
end # with_fx
end # thread
in_thread(name: :treble) do
treb_iter = 0
with_fx :reverb, room: 1 do
use_synth :blade
2.times do
sleep 13
play :Fs6
sleep 1
play :A6
sleep 1
play :G6
sleep 1
play :Fs6
sleep 1
play :Cs6
sleep 1
play :B5
sleep 1
play :Cs6
sleep 1
play :D6
sleep 1
play :A5
sleep 3
play :Fs5, release: 3
sleep 12
# second go-round
sleep 1
play :Fs6
sleep 1
play :A6
sleep 1
play :G6
sleep 1
play :Fs6
sleep 1
play :Cs6
sleep 1
play :B5
sleep 1
play :Cs6
sleep 1
play :D6
sleep 1
play :A5
sleep 3
play :Cs6
sleep 3
play :Fs6
sleep 3
play :E4, release: 3
sleep 9
# part 2
play :A5
sleep 1
play :B5
sleep 1
play :C6
sleep 1
play :E6
sleep 1
play :D6
sleep 1
play :B5
sleep 1
play :D6
sleep 1
play :C6
sleep 1
play :B5
sleep 1
play :D6
sleep 5
play :D6
sleep 1
play :E6
sleep 1
play :F6
sleep 1
play :G6
sleep 1
play :A6
sleep 1
play :C6
sleep 1
play :D6
sleep 1
play :E6
sleep 1
play :D6
sleep 1
play :B5
sleep 1
play :D6
sleep 5
play :D6
sleep 1
if (treb_iter == 0)
# discordant fork 1
play :G6
sleep 3
play :Fs6
sleep 3
play :B5
sleep 1
play :A5
sleep 1
play :B5
sleep 1
play :Cs6
sleep 1
play :D6
sleep 1
play :E6
sleep 1
play :Cs6
sleep 1
play :D6
sleep 1
play :E6
sleep 1
play :Fs5
sleep 2
play :G5
sleep 1
play :A5, release: 3
sleep 3
play :A5, release: 3
sleep 3
treb_iter = 1
else
# discordant fork 2
play :G6
sleep 3
play :F6
sleep 3
play :B5
sleep 1
play :C6
sleep 1
play :F6
sleep 1
play :E6
sleep 1
play :D6
sleep 1
play :C6
sleep 1
play :E6
sleep 1
play :D6
sleep 1
play :C6
sleep 1
play :F5
sleep 2
play :G5
sleep 1
play :A5, release: 3
sleep 3
play :A5, release: 3
sleep 3
end # bifurcation
end # 2.times
end # with_fx
end # thread
@asarenski
Copy link

Thanks for making this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment