Gnome Powered Music Engine

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