require 'mtk'
require 'mtk/io/midi_file'
include MTK
include Lang::Pitches
include Lang::Intensities
file = ARGV[0] || "MTK-#{File.basename(__FILE__,'.rb')}.mid"
_ = nil
pattern = { C2 => [fff, _, _, _, mf, _, _, _, f, _, _, _, mp, _, _, _], Db2 => [ _, _, f, _, _, _, mp, _, _, _, f, _, _, _, mf, _], D2 => [ _, mp, _, mp, _, mp, _, mf, _, mp, _, mp, _, pp, _, mf] }
timeline = Events::Timeline.new
for pitch,intensities in pattern
track = Sequencers::StepSequencer( Patterns.Sequence(intensities), default_pitch:pitch, channel:10 )
timeline.merge track.to_timeline
end
MIDIFile(file).write timeline