module Midi::IO

Public Class Methods

load(input_path) click to toggle source
# File lib/kuromusic/IO/MIDI.rb, line 6
def self.load(input_path)
  tempo = 120
  Midi.new(tempo)
end
write(output_path, midi) click to toggle source
# File lib/kuromusic/IO/MIDI.rb, line 10
def self.write(output_path, midi)
  File.open(output_path, "wb") do |file|
    track_num = midi.tracks.length
    dtime = midi.dtime
    file.write [0x4d, 0x54, 0x68, 0x64, 0, 0, 0, 6, 0, 1, track_num >> 8, track_num % 256, dtime >> 8, dtime % 256].pack('C*')
    midi.tracks.each {|track|
      track.extend(Midi::Track)
      m = track.to_bin
      track.each {|e|
        #[e.args[:type], e.args[:method], e.args[:note], e.args[:octave], e.args[:dur], e.args[:velocity]]
        #p e.args
      }
      #p m
      file.write m.pack('C*')
    }
  end
end