define :drums do |level, b_level=1, rand_cf=false|
synth :fm, note: :e2, release: 0.1, amp: b_level * 3, cutoff: 130
co = rand_cf ? rrand(110, 130) : 130
a = rand_cf ? rrand(0.3, 0.5) : 0.6
n = rand_cf ? :bnoise : :noise
synth :noise, release: 0.05, cutoff: co, res: 0.95, amp: a if level > 0
sample :elec_blip, amp: 2, rate: 2, pan: rrand(-0.8, 0.8) if level > 1
sleep 1
end
define :synths do |s_name, co, n=:e2|
use_synth s_name
use_transpose 0
use_synth_defaults detune: [12,24].choose, amp: 1, cutoff: 100, pulse_width: 0.12, attack: rrand(0.2, 0.5), release: 0.5 , mod_phase: 0.25, mod_invert_wave: 1
play :e1, mod_range: [7, 12].choose, pan: rrand(-1, 1)
sleep 0.125
play :e3, mod_range: [7, 12].choose, pan: rrand(-1, 1)
sleep [0.25, 0.5].choose
play n, mod_range: 12, pan: rrand(-1, 1)
sleep 0.5
play chord(:e2, :minor).choose, mod_range: 12, pan: rrand(-1, 1)
sleep 0.25
end
in_thread name: :synths do
use_random_seed 0
level = -1
with_fx :echo do |e|
50.times do |i|
puts i
drums level, 0.8
sleep 1
sync :foo
end
end
end
in_thread name: :synths1 do
with_fx :reverb do |r|
with_fx :echo, phase: 0.25 do |e|
cue :foo
synths(:mod_dsaw, 60, :e5)
cue :foo
synths(:mod_dsaw, 60, :e5)
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_dsaw, 60, :e5)
cue :foo
synths(:mod_dsaw, 60, :e5)
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_dsaw, 60, :e5)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :a2)
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :a2)
synths(:mod_dsaw, 60, chord(:e5, :minor))
synths(:mod_dsaw, 60, :e5)
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_dsaw, 60, chord(:e5, :minor))
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_dsaw, 60, chord(:e5, :minor))
synths(:mod_dsaw, 60, :e5)
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_dsaw, 60, chord(:e5, :minor))
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_dsaw, 60, :e5)
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_dsaw, 60, chord(:e5, :minor))
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_dsaw, 60, chord(:e5, :minor))
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
cue :foo
synths(:mod_saw, 60, :e3)
end
end
end
Link: https://sonic-pi-gallery.s3.amazonaws.com/d3c019e79a7e2d48463078a309f5dad0.wav