Skip to content

Instantly share code, notes, and snippets.

View nicoder's full-sized avatar

Nicolas Dermine nicoder

View GitHub Profile
live_loop :d1 do
sample :drum_bass_hard, amp: 1.5
sleep 1
end
live_loop :d2 do
sync :d1
sleep 0.5
sample :drum_snare_hard
end
use_synth :piano
live_loop :a do |i|
play (ring 60, 62, 64, 60).tick(:a), pan: -1 if i < 64
play (ring 64, 65, 67, nil).tick(:b), pan: -0.5 if i > 7 and i < 72
play (ring 67, 67, 64, 60).tick(:c), pan: 0.5 if i > 15 and i < 80
play (ring 62, 55, 60, nil).tick(:d), pan: 1 if i > 23 and i < 88
stop if i == 88
sleep 0.5
i += 1
# end state of a short live coding session after the first day of the wroc_love.rb conference
live_loop :beat do
2.times do
sample :drum_bass_hard, pan: [-1, 1].choose
sample :drum_bass_hard
sleep 0.25
end
with_fx :echo, phase: 0.3 do
sample :perc_snap2
live_loop :a1 do
play 60, release: 0.3
sleep 0.5
end
live_loop :a2 do
# sync :a1
use_bpm rrand(60, 480)
play (ring 48, 60, 72).tick + (ring -12, 12).look, release: rrand(0.2, 0.6)
sleep 0.5
# Sonic Pi Kata (wroc_love.rb 2016)
live_loop :d do
2.times do
sample :drum_bass_hard, pan: [-0.1, 0.1].choose if one_in 5
sleep 0.25
end
with_fx :echo, phase: 0.3, mix: 0.3 do
sample :drum_snare_hard if one_in 8
end
live_loop :d do
sample :bd_808
sleep 1
end
live_loop :d2 do
sync :d
sleep 0.5
with_fx :echo, phase: 0.7, mix: rrand(0.1, 0.2) do
sample :bd_ada, start: rrand(0.1, 0.2), attack: 0.05
live_loop :a do
use_synth :mod_fm
d = (ring 0.5, 1, 1.5).tick
play 50 + d + 0, release: d
sleep d
end
live_loop :b do
# sync :a
use_synth :fm
live_loop :a do
play (ring 67, 70).tick, release: 0.1
play (ring 72, 77).look, release: 0.1
play scale(72, :aeolian, num_octaves: 3).choose, release: 0.1
sleep 0.125
end
live_loop :b do
sync :a
use_synth :tb303
live_loop :m do
sleep 1
end
live_loop :a do
# sync :m
play 48
sleep 1
end
live_loop :a do
sample :bd_808
sleep 1
end
live_loop :b do
sync :a
sleep 0.5
sample :bd_gas
end