Module: Midi::Chord
- Defined in:
- lib/kuromusic/IO/MIDI/Chord.rb
Instance Method Summary collapse
Instance Method Details
#to_bin(key) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/kuromusic/IO/MIDI/Chord.rb', line 7 def to_bin(key) predur = 0 ons = [] offs = [] maxdur = 0 @notes.sort {|a, b| a.dur <=> b.dur }.each {|n| ons += [::Event::Note::rest(0), n.get_on_event(key)] maxdur = n.dur if maxdur < n.dur }.each {|n| currentdur = n.dur - predur offs += [::Event::Note::rest(currentdur), n.get_off_event(key)] predur = n.dur } (ons + offs).map {|e| e.extend(Midi::Event) e.to_bin }.flatten! end |