Skip to content

Instantly share code, notes, and snippets.

@jweather
Created March 23, 2015 18:27
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jweather/200c7925a38b08215b8f to your computer and use it in GitHub Desktop.
Save jweather/200c7925a38b08215b8f to your computer and use it in GitHub Desktop.
Sonic Pi: untitled composition
# based on https://vimeo.com/50061269 by Andrew Sorensen
use_bpm 90
use_synth :dsaw
loops = [0, 0, 0, 0, 0]
define :pat do |notes, amps, time, count, rel, loop|
with_fx :reverb do
count.times do |i|
play notes[i], amp: loops[loop]*rrand(amps[i]-0.05, amps[i]+0.05), release: rel
sleep time
end
end
end
live_loop :doodle do
pat (ring :c4, :eb4), (ring 0.3, 0.2, 0.2), 1/3.0, 6, 0.45, 0
end
live_loop :noodle, auto_cue:false do
sync :doodle
pat (ring :g4, :bb5), (ring 0.2, 0.1, 0.1), 1/3.0, 6, 0.4, 1
end
live_loop :boodle, auto_cue:false do
sync :doodle
pat (ring :c4, :bb3, :ab3), (ring 0.35, 0.3, 0.3), 8, 8, 8, 2 if loops[2] != 0
end
live_loop :foodle, auto_cue:false do
sync :doodle
sleep 1
pat (ring :eb4), (ring 0.4, 0.3, 0.3), 8, 8, 7, 3 if loops[3] != 0
end
live_loop :arpoodle, auto_cue:false do
sync :doodle
pat (ring :bb5, :eb5, :g6, :eb5, :g6, :eb5), (ring 0.2, 0.1, 0.1), 1/6.0, 12, 1/6.0, 4 if loops[4] != 0
end
5.times do |i|
8.times do
loops[i] += 1/8.0
puts loops
sleep 1
end
sleep 16 if i > 1
end
live_loop :finoodle, auto_cue: false do
factors = [7, 11, 13, 17, 19]
5.times do |i|
loops[i] = Math.sin(vt/factors[i])*0.75 + 1
end
puts loops
sleep 1
sample :ambi_glass_hum, amp: 0.3, rate: pitch_ratio(3) if one_in(24)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment