#! /usr/bin/env ruby

require 'smf'
include  SMF

class Array; def rand() self[Kernel.rand(self.size)] end end

sq = Sequence.new
tr = Track.new
sq << tr
tr << SequenceName.new(0, 'rand2')
srand
for ch in 0..2
  offset = 0
  for i in 0..127
    note = [0, 2, 4, 5, 7, 9, 10].rand
    note += (rand(1) + 4 + ch) * 12
    vel  = rand(127) + 1
    tr << NoteOn. new(offset, ch, note, vel)
    offset += [12, 24, 48, 96, 192, 384].rand
    tr << NoteOff.new(offset, ch, note, 64)
  end
end
sq.encodefile('rand2.mid')
