Skip to content

Instantly share code, notes, and snippets.

@mbutz
Created December 29, 2016 12:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mbutz/6a35ef12dadbc74baa25702b895c0275 to your computer and use it in GitHub Desktop.
Save mbutz/6a35ef12dadbc74baa25702b895c0275 to your computer and use it in GitHub Desktop.
Canon Experiment with Sonic Pi (based on Kyrie eleison by Herbert Beuerle)
# mother-of-canon.rb
# Kyrie eleison, Herbert Beuerle
use_bpm 180
use_synth :fm
with_fx :echo, phase: 8, decay: 1, mix: 0.75 do
live_loop :canon do
tick(:cnt)
if look(:cnt) <= 0
puts "================== (1 _ _ _) ==============="
div = 2
cof = 75
dep = 1
rom = 1
mxx = 0.5
vol = 0.5
pnn = -0.75
elsif look(:cnt) <= 1
puts "================== (_ 2 _ _) ==============="
div = 2
cof = 110
dep = 1
rom = 0.75
mxx = 0.5
vol = 1
pnn = -0.25
elsif look(:cnt) <= 2
puts "================== (_ _ 3 _) ==============="
div = 1
cof = 110
dep = 1.5
rom = 0.75
mxx = 0.5
vol = 1
pnn = 0.25
elsif look(:cnt) <= 3
puts "================== (_ _ _ 4) ==============="
div = 1
cof = 75
dep = 1.5
rom = 1
mxx = 0.5
vol = 0.5
pnn = 0.75
if look(:cnt) == 3
tick_set :cnt, 0
end
end
use_synth_defaults depth: dep, divisor: div, attack: 0.025, release: 1, cutoff: cof, amp: vol, pan: pnn
with_fx :reverb, room: rom, mix: mxx do
2.times do
play :b, release: 1.25
sleep 1.5
play :b
sleep 0.5
play :b, release: 1.5
sleep 2
end
play_pattern_timed [:b,:a,:g,:fs],1
play :g, release: 1.5
sleep 2
play :e, release: 1.5
sleep 2
play_pattern_timed [:g,:fs,:e,:b3],[1]
play :e, release: 1.5
sleep 2
play :g, release: 0.75
sleep 1
play :b, release: 0.75
sleep 1
play_pattern_timed [:e5,:d5,:c5,:d5],[1]
play :b, release: 2.5
sleep 3
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment