Sha256: 84f1d588b26499eac91e7204989fa1388c4857993305e6c538a84faaaaf08929
Contents?: true
Size: 865 Bytes
Versions: 2
Compression:
Stored size: 865 Bytes
Contents
module Music module Performance class ScoreSequencer def initialize score start_nps = NoteTimeConverter.notes_per_second(score.start_tempo, score.start_meter.beat_duration) @start_usec_per_qnote = MidiUtil.usec_per_qnote(start_nps) @parts = ScoreCollator.new(score).collate_parts end def make_midi_seq seq = MIDI::Sequence.new() # first track for the sequence holds time sig and tempo events track0 = MIDI::Track.new(seq) seq.tracks << track0 track0.events << MIDI::Tempo.new(@start_usec_per_qnote) track0.events << MIDI::MetaEvent.new(MIDI::META_SEQ_NAME, 'Sequence Name') channel = 0 @parts.each do |part_name,part| pseq = PartSequencer.new(part) seq.tracks << pseq.make_midi_track(seq, part_name, channel, seq.ppqn) channel += 1 end return seq end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
music-performance-0.3.0 | lib/music-performance/arrangement/midi/score_sequencer.rb |
music-performance-0.2.1 | lib/music-performance/arrangement/midi/score_sequencer.rb |