My first creation

use_bpm 80

halte = 0

define :kick do
  in_thread do
    sample :drum_heavy_kick
    sleep 0.33
    sample :drum_heavy_kick
    sleep 0.67
    sample :drum_snare_hard
    sleep 1
    sample :drum_heavy_kick
    sleep 0.67
    sample :drum_heavy_kick
    sleep 0.33
    sample :drum_snare_hard
    sleep 1
  end
end

define :splach do
  in_thread do
    sample :drum_cymbal_hard
  end
end

define :shirley do
  in_thread do
    8.times do
      sample :drum_cymbal_closed
      sleep (ring 0.67,0.67,0.33,0.33,0.33,0.67,0.67,0.33).tick
    end
  end
end

define :breaq do |choix|
  in_thread do
    if choix == 1
      5.times do
        sample :drum_snare_hard
        sleep (ring 0.165,0.165,0.33,0.165,0.165).tick
      end
    else
      5.times do
        sample [:drum_tom_hi_hard, :drum_tom_mid_hard].choose
        sleep (ring 0.165,0.165,0.33,0.165,0.165).tick
      end
    end
  end
end


define :bass do
  in_thread do
    use_synth :tb303
    9.times do
      play (chord :eb2, :M7).choose, cutoff: rrand(60, 110), release: 0.1
      sleep (ring 0.67, 0.67,0.33,0.33,0.33,0.67,0.33,0.33, 0.33).tick
    end
  end
end

define :synthe do
  in_thread do
    7.times do
      play (scale :Eb6, :minor_pentatonic, num_octaves: 2).choose, release: 0.1
      sleep [0.67,0.33,0.165,0.165,0.165].choose
    end
  end
end

define :accords do
  in_thread do
    4.times do
      play_chord (ring chord(:eb4, :M),chord(:f4, :m7),chord(:bb4, :M7),chord(:bb4, :M7)).tick(:n)
      sleep (ring 1.67,0.67,1,0.66).tick(:r)
    end
  end
end

accords
sleep 4
accords
shirley
sleep 4
accords
shirley
sleep 3
breaq 2
sleep 1

live_loop :main do
  if halte == 0
    kick
    shirley
    synthe
    accords
    bass
    splach if one_in(4)
    sleep 3
    breaq [1, 2].choose if one_in(2)
    sleep 1
  else
    stop
  end
end


sleep 64
halte = 1
bass
accords
shirley
sleep 4
synthe
accords
sleep 4
accords
3 Likes