- 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 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轨道。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 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
基于速度的定时类型,其分辨率以每四分音符的脉冲(滴答)表示。- 另请参见:
-
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[])
-
-