package org.herac.tuxguitar.io.midi.base; import java.util.ArrayList; import java.util.List; public class MidiSequence { public static final float PPQ = 0.0f; public static final float SMPTE_24 = 24.0f; public static final float SMPTE_25 = 25.0f; public static final float SMPTE_30DROP = 29.97f; public static final float SMPTE_30 = 30.0f; protected float divisionType; protected int resolution; private List tracks; public MidiSequence(float divisionType, int resolution){ this.divisionType = divisionType; this.resolution = resolution; this.tracks = new ArrayList(); } public void addTrack(MidiTrack track){ this.tracks.add(track); } public MidiTrack getTrack(int index){ return (MidiTrack)this.tracks.get(index); } public int countTracks(){ return this.tracks.size(); } public float getDivisionType() { return this.divisionType; } public int getResolution() { return this.resolution; } public void sort(){ for(int i = 0; i < this.tracks.size(); i ++){ MidiTrack track = (MidiTrack)this.tracks.get(i); track.sort(); } } public void finish(){ for(int i = 0; i < this.tracks.size(); i ++){ MidiTrack track = (MidiTrack)this.tracks.get(i); track.add(new MidiEvent(MidiMessage.metaMessage(47,new byte[]{}),track.ticks())); track.sort(); } } }