- java.lang.Object
-
- javax.sound.midi.Sequence
-
public class Sequence extends Object
ASequence
是包含可由Sequencer
对象重放的音乐信息(通常是整个歌曲或作曲)的数据结构。 具体来说,Sequence
包含定时信息和一个或多个轨道。 每个track
包括一系列MIDI事件(如音符,音符,程序更改和元事件)。 序列的时序信息指定用于对序列中的事件进行时间戳的单位类型。甲
Sequence
可以从MIDI文件通过文件读入的输入流和调用的一个来创建getSequence
的方法MidiSystem
。 还可以通过将新的Tracks
添加到一个空的Sequence
,并将MidiEvent
对象添加到这些Tracks
,从而构建Tracks
。
-
-
Field Summary
Fields Modifier and Type Field 描述 protected float
divisionType
序列的时序分割类型。static float
PPQ
基于节拍的时间类型,其分辨率以每四分之一音符的脉冲(刻度)表示。protected int
resolution
序列的时序分辨率。static float
SMPTE_24
基于SMPTE的定时类型,每秒24帧(分辨率以帧为单位表示)。static float
SMPTE_25
基于SMPTE的定时类型,每秒25帧(分辨率以帧为单位表示)。static float
SMPTE_30
基于SMPTE的定时类型,每秒30帧(分辨率以帧为单位表示)。static float
SMPTE_30DROP
基于SMPTE的定时类型,每秒29.97帧(分辨率以帧为单位表示)。protected Vector<Track>
tracks
MIDI序列中的MIDI轨迹。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Track
createTrack()
创建一个新的,最初的空轨,作为这个序列的一部分。boolean
deleteTrack(Track track)
从序列中删除指定的轨迹。float
getDivisionType()
获取此序列的时序分割类型。long
getMicrosecondLength()
获得此序列的持续时间,以微秒表示。Patch[]
getPatchList()
获取此序列中引用的修补程序列表。int
getResolution()
获取此序列的时序分辨率。long
getTickLength()
获取此序列的持续时间,以MIDI刻度表示。Track[]
getTracks()
获取包含此序列中所有曲目的数组。
-
-
-
字段详细信息
-
PPQ
public static final float PPQ
基于节拍的时间类型,其分辨率以每四分之一音符的脉冲(刻度)表示。
-
SMPTE_24
public static final float SMPTE_24
基于SMPTE的定时类型,每秒24帧(分辨率以帧为单位表示)。
-
SMPTE_25
public static final float SMPTE_25
基于SMPTE的定时类型,每秒25帧(分辨率以帧为单位表示)。
-
SMPTE_30DROP
public static final float SMPTE_30DROP
基于SMPTE的定时类型,每秒29.97帧(分辨率以帧为单位表示)。
-
SMPTE_30
public static final float SMPTE_30
基于SMPTE的定时类型,每秒30帧(分辨率以帧为单位表示)。
-
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序列中的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
指定的曲目数进行初始化。 这些曲目最初是空的(即它们只包含元事件结束曲目)。 可以使用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()
创建一个新的,最初的空轨,作为这个序列的一部分。 轨道最初包含元事件结束轨道。 新创建的轨道返回。 可以使用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[])
-
-