This is my first work. Hopefully they’ll become better with time.
# Gnome powered music engine
live_loop :oscilator do
cue :timer
sleep 0.75
end
define :greater do |a, b|
if a >= b then
return a
else
return b
end
end
define :kblade do |note|
use_synth :blade
with_fx :krush do
with_fx :reverb, mix: 0.3, room: 0.4 do
play note, sustain: 0, decay: 0, attack: 0.2, release: 0.375
end
end
end
k = 0
r = 0
live_loop :engine do
if k < 1000 then
sync :timer
else
r = greater 0, r - k
end
if k < 10000 then
sleep greater 0.05, rdist(0.005 * (k / 24 + 1), 0.05) + r
else
sleep 0.01
end
n = (range 56, 128, step: (3 + k / 24 * 0.5)).tick
kblade [67, 65, 63, n]
if k < 10000 then
sleep greater 0.025, rdist(0.00075 * (k / 24 + 1), 0.375) + r
else
sleep 0.01
end
kblade [55, 53, 51, n - 12]
cue :play_music
k = k + 1.0 + (k/5)
if k > 11000 then
use_synth :blade
with_fx :krush do
with_fx :reverb, mix: 0.3, room: 0.4 do
with_fx :echo, phase: 0.1, decay: 0.11 do
play (range 20, 40, step: 3), sustain: 0, decay: 0, attack: 0.0, release: 0.4, amp: 15
end
end
end
stop
end
end
live_loop :music do
sync :play_music
use_synth :pretty_bell
(k / 127 + 1).times do
play 50 + k % 30
sleep 0.08
end
if k > 11000 then
play 40, decay: 0.1, amp: 4
k = 0
end
end