- java.lang.Object
-
- javax.sound.midi.Sequence
-
public class Sequence extends Object
Sequence是包含可由Sequencer对象播放的音乐信息(通常是整首歌曲或乐曲)的数据结构。 具体而言,Sequence包含定时信息和一个或多个轨道。 每个track由一系列MIDI事件组成(例如音符,音符关闭,程序更改和元事件)。 序列的定时信息指定用于对序列中的事件加时间戳的单元类型。甲
Sequence可以从MIDI文件通过文件读入的输入流和调用的一个来创建getSequence的方法MidiSystem。 通过将新的Tracks添加到空Sequence,并将MidiEvent对象添加到这些Tracks,也可以从头开始构建序列。
-
-
字段汇总
字段 变量和类型 字段 描述 protected floatdivisionType序列的时序分割类型。static floatPPQ基于速度的定时类型,其分辨率以每四分音符的脉冲(滴答)表示。protected intresolution序列的定时分辨率。static floatSMPTE_24基于SMPTE的定时类型,每秒24帧(分辨率以每帧的刻度表示)。static floatSMPTE_25基于SMPTE的定时类型,每秒25帧(分辨率以每帧的刻度表示)。static floatSMPTE_30基于SMPTE的定时类型,每秒30帧(分辨率以每帧的刻度表示)。static floatSMPTE_30DROP基于SMPTE的定时类型,每秒29.97帧(分辨率以每帧的刻度表示)。protected Vector<Track>tracks此序列中的MIDI轨道。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 TrackcreateTrack()作为此序列的一部分,创建一个新的,最初为空的轨道。booleandeleteTrack(Track track)从序列中删除指定的轨道。floatgetDivisionType()获得该序列的时序分割类型。longgetMicrosecondLength()获得此序列的持续时间,以微秒表示。Patch[]getPatchList()获取此序列中引用的修补程序列表。intgetResolution()获得该序列的定时分辨率。longgetTickLength()获得此序列的持续时间,以MIDI刻度表示。Track[]getTracks()获得包含此序列中所有轨道的数组。
-
-
-
字段详细信息
-
PPQ
public static final float PPQ
基于速度的定时类型,其分辨率以每四分音符的脉冲(滴答)表示。- 另请参见:
-
Sequence(float, int), 常数字段值
-
SMPTE_24
public static final float SMPTE_24
基于SMPTE的定时类型,每秒24帧(分辨率以每帧的刻度表示)。- 另请参见:
-
Sequence(float, int), 常数字段值
-
SMPTE_25
public static final float SMPTE_25
基于SMPTE的定时类型,每秒25帧(分辨率以每帧的刻度表示)。- 另请参见:
-
Sequence(float, int), 常数字段值
-
SMPTE_30DROP
public static final float SMPTE_30DROP
基于SMPTE的定时类型,每秒29.97帧(分辨率以每帧的刻度表示)。- 另请参见:
-
Sequence(float, int), 常数字段值
-
SMPTE_30
public static final float SMPTE_30
基于SMPTE的定时类型,每秒30帧(分辨率以每帧的刻度表示)。- 另请参见:
-
Sequence(float, int), 常数字段值
-
divisionType
protected float divisionType
序列的时序分割类型。- 另请参见:
-
PPQ,SMPTE_24,SMPTE_25,SMPTE_30DROP,SMPTE_30,getDivisionType()
-
resolution
protected int resolution
序列的定时分辨率。- 另请参见:
-
getResolution()
-
tracks
protected Vector<Track> tracks
此序列中的MIDI轨道。- 另请参见:
-
getTracks()
-
-
构造方法详细信息
-
Sequence
public Sequence(float divisionType, int resolution) throws InvalidMidiDataException构造具有指定时序分割类型和时序分辨率的新MIDI序列。 除法类型必须是已识别的MIDI时序类型之一。 对于基于速度的计时,divisionType是PPQ(每四分音符的脉冲数),分辨率以每拍的刻度数指定。 对于SMTPE计时,divisionType指定每秒的帧数,并以每帧的刻度数指定分辨率。 序列不包含初始曲目。 可以使用createTrack()和deleteTrack(javax.sound.midi.Track)将序列添加到序列中或从序列中删除。- 参数
-
divisionType- 时序分区类型(PPQ或其中一种SMPTE类型) -
resolution- 时序分辨率 - 异常
-
InvalidMidiDataException- 如果divisionType无效 - 另请参见:
-
PPQ,SMPTE_24,SMPTE_25,SMPTE_30DROP,SMPTE_30,getDivisionType(),getResolution(),getTracks()
-
Sequence
public Sequence(float divisionType, int resolution, int numTracks) throws InvalidMidiDataException构造具有指定时序分割类型,时序分辨率和轨道数的新MIDI序列。 除法类型必须是已识别的MIDI时序类型之一。 对于基于速度的定时,divisionType是PPQ(每四分音符的脉冲数),并且分辨率以每个节拍的刻度指定。 对于SMTPE计时,divisionType指定每秒的帧数,并以每帧的刻度数指定分辨率。 序列将使用numTracks指定的轨道数进行初始化。 这些轨道最初是空的(即它们仅包含元事件End of Track)。 可以使用getTracks()方法检索轨道以进行编辑。 可以使用createTrack()和deleteTrack(javax.sound.midi.Track)添加其他曲目或删除现有曲目。- 参数
-
divisionType- 时序分区类型(PPQ或其中一种SMPTE类型) -
resolution- 定时分辨率 -
numTracks- 序列中的初始轨道数 - 异常
-
InvalidMidiDataException- 如果divisionType无效 - 另请参见:
-
PPQ,SMPTE_24,SMPTE_25,SMPTE_30DROP,SMPTE_30,getDivisionType(),getResolution()
-
-
方法详细信息
-
getDivisionType
public float getDivisionType()
获得该序列的时序分割类型。- 结果
- 分区类型(PPQ或其中一种SMPTE类型)
- 另请参见:
-
PPQ,SMPTE_24,SMPTE_25,SMPTE_30DROP,SMPTE_30,Sequence(float, int),MidiFileFormat.getDivisionType()
-
getResolution
public int getResolution()
获得该序列的定时分辨率。 如果序列的除法类型是PPQ,则以每个节拍的刻度指定分辨率。 对于SMTPE计时,分辨率以每帧的刻度数指定。- 结果
- 每拍(PPQ)或每帧(SMPTE)的节拍数
- 另请参见:
-
getDivisionType(),Sequence(float, int),MidiFileFormat.getResolution()
-
createTrack
public Track createTrack()
作为此序列的一部分,创建一个新的,最初为空的轨道。 该轨道最初包含元事件End of Track。 将返回新创建的曲目。 可以使用getTracks()检索序列中的所有轨道。 可以使用deleteTrack(javax.sound.midi.Track)从序列中删除曲目。- 结果
- 新创建的曲目
-
deleteTrack
public boolean deleteTrack(Track track)
从序列中删除指定的轨道。- 参数
-
track- 要删除的曲目 - 结果
-
true如果曲目存在于曲目中并被删除,否则为false - 另请参见:
-
createTrack(),getTracks()
-
getTracks
public Track[] getTracks()
获得包含此序列中所有轨道的数组。 如果序列不包含轨道,则返回长度为0的数组。- 结果
- 轨道数组
- 另请参见:
-
createTrack(),deleteTrack(javax.sound.midi.Track)
-
getMicrosecondLength
public long getMicrosecondLength()
获得此序列的持续时间,以微秒表示。- 结果
- 此序列的持续时间以微秒为单位
-
getTickLength
public long getTickLength()
获得此序列的持续时间,以MIDI刻度表示。- 结果
- 这个序列的长度以刻度表示
- 另请参见:
-
getMicrosecondLength()
-
getPatchList
public Patch[] getPatchList()
获取此序列中引用的修补程序列表。 此修补程序列表可用于将所需的Instrument对象加载到Synthesizer中 。- 结果
-
此序列中使用的
Patch个对象的数组 - 另请参见:
-
Synthesizer.loadInstruments(Soundbank, Patch[])
-
-