41 * {@link MidiSystem}. A sequence can also be built from scratch by adding new 42 * {@code Tracks} to an empty {@code Sequence}, and adding {@link MidiEvent} 43 * objects to these {@code Tracks}. 44 * 45 * @author Kara Kytle 46 * @see Sequencer#setSequence(java.io.InputStream stream) 47 * @see Sequencer#setSequence(Sequence sequence) 48 * @see Track#add(MidiEvent) 49 * @see MidiFileFormat 50 */ 51 public class Sequence { 52 53 // Timing types 54 55 /** 56 * The tempo-based timing type, for which the resolution is expressed in 57 * pulses (ticks) per quarter note. 58 * 59 * @see #Sequence(float, int) 60 */ 61 public static final float PPQ = 0.0f; 62 63 /** 64 * The SMPTE-based timing type with 24 frames per second (resolution is 65 * expressed in ticks per frame). 66 * 67 * @see #Sequence(float, int) 68 */ 69 public static final float SMPTE_24 = 24.0f; 70 71 /** 72 * The SMPTE-based timing type with 25 frames per second (resolution is 73 * expressed in ticks per frame). 74 * 75 * @see #Sequence(float, int) 76 */ 77 public static final float SMPTE_25 = 25.0f; 78 79 /** 80 * The SMPTE-based timing type with 29.97 frames per second (resolution is 81 * expressed in ticks per frame). 82 * 83 * @see #Sequence(float, int) 84 */ 85 public static final float SMPTE_30DROP = 29.97f; 86 87 /** 88 * The SMPTE-based timing type with 30 frames per second (resolution is 89 * expressed in ticks per frame). 90 * 91 * @see #Sequence(float, int) 92 */ 93 public static final float SMPTE_30 = 30.0f; 94 95 // Variables 96 97 /** 98 * The timing division type of the sequence. 99 * 100 * @see #PPQ 101 * @see #SMPTE_24 102 * @see #SMPTE_25 103 * @see #SMPTE_30DROP 104 * @see #SMPTE_30 105 * @see #getDivisionType 106 */ 107 protected float divisionType; 108 109 /** 110 * The timing resolution of the sequence. 111 * 112 * @see #getResolution 113 */ | 41 * {@link MidiSystem}. A sequence can also be built from scratch by adding new 42 * {@code Tracks} to an empty {@code Sequence}, and adding {@link MidiEvent} 43 * objects to these {@code Tracks}. 44 * 45 * @author Kara Kytle 46 * @see Sequencer#setSequence(java.io.InputStream stream) 47 * @see Sequencer#setSequence(Sequence sequence) 48 * @see Track#add(MidiEvent) 49 * @see MidiFileFormat 50 */ 51 public class Sequence { 52 53 // Timing types 54 55 /** 56 * The tempo-based timing type, for which the resolution is expressed in 57 * pulses (ticks) per quarter note. 58 * 59 * @see #Sequence(float, int) 60 */ 61 public static final float PPQ = 0.0f; 62 63 /** 64 * The SMPTE-based timing type with 24 frames per second (resolution is 65 * expressed in ticks per frame). 66 * 67 * @see #Sequence(float, int) 68 */ 69 public static final float SMPTE_24 = 24.0f; 70 71 /** 72 * The SMPTE-based timing type with 25 frames per second (resolution is 73 * expressed in ticks per frame). 74 * 75 * @see #Sequence(float, int) 76 */ 77 public static final float SMPTE_25 = 25.0f; 78 79 /** 80 * The SMPTE-based timing type with 29.97 frames per second (resolution is 81 * expressed in ticks per frame). 82 * 83 * @see #Sequence(float, int) 84 */ 85 public static final float SMPTE_30DROP = 29.97f; 86 87 /** 88 * The SMPTE-based timing type with 30 frames per second (resolution is 89 * expressed in ticks per frame). 90 * 91 * @see #Sequence(float, int) 92 */ 93 public static final float SMPTE_30 = 30.0f; 94 95 // Variables 96 97 /** 98 * The timing division type of the sequence. 99 * 100 * @see #PPQ 101 * @see #SMPTE_24 102 * @see #SMPTE_25 103 * @see #SMPTE_30DROP 104 * @see #SMPTE_30 105 * @see #getDivisionType 106 */ 107 protected float divisionType; 108 109 /** 110 * The timing resolution of the sequence. 111 * 112 * @see #getResolution 113 */ |