public class Sequence extends Object
Sequence是包含音乐信息可以由回放的数据结构(通常是整首歌曲或组合物) Sequencer对象。
具体来说, Sequence包含定时信息和一个或多个轨道。
每个track由一系列MIDI事件(如音符,音符,程序更改和元事件)组成。
序列的时序信息指定用于对序列中的事件进行时间戳的单位类型。
甲Sequence可以从MIDI文件通过文件读入的输入流和调用的一个来创建getSequence的方法MidiSystem 。 还可以从零开始构建一个序列,将新的Tracks添加到空的Sequence ,并将对象添加到这些MidiEventTracks 。
| Modifier and Type | Field and Description |
|---|---|
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轨迹。
|
| Constructor and Description |
|---|
Sequence(float divisionType, int resolution)
构造具有指定的时序分割类型和时序分辨率的新MIDI序列。
|
Sequence(float divisionType, int resolution, int numTracks)
构造一个具有指定的时序分割类型,时序分辨率和轨道数的新MIDI序列。
|
| Modifier and Type | Method and Description |
|---|---|
Track |
createTrack()
创建一个新的,最初的空轨,作为这个序列的一部分。
|
boolean |
deleteTrack(Track track)
从序列中删除指定的轨迹。
|
float |
getDivisionType()
获取此序列的时序分割类型。
|
long |
getMicrosecondLength()
获得此序列的持续时间,以微秒表示。
|
Patch[] |
getPatchList()
获取此序列中引用的修补程序列表。
|
int |
getResolution()
获取此序列的时序分辨率。
|
long |
getTickLength()
获取此序列的持续时间,以MIDI刻度表示。
|
Track[] |
getTracks()
获取包含此序列中所有曲目的数组。
|
public static final float PPQ
public static final float SMPTE_24
public static final float SMPTE_25
public static final float SMPTE_30DROP
public static final float SMPTE_30
protected float divisionType
PPQ ,
SMPTE_24 ,
SMPTE_25 ,
SMPTE_30DROP ,
SMPTE_30 ,
getDivisionType()
protected int resolution
getResolution()
protected Vector<Track> tracks
getTracks()
public Sequence(float divisionType,
int resolution)
throws InvalidMidiDataException
divisionType是PPQ(每四分之一个音符的脉冲),分辨率以每搏输出。
对于divisionType定时, divisionType指定每秒钟的帧数, divisionType以帧为单位指定。
该序列将不包含初始轨迹。
可以使用createTrack()和deleteTrack(javax.sound.midi.Track)将轨迹添加到序列或从序列中deleteTrack(javax.sound.midi.Track) 。
divisionType - 时序分割类型(PPQ或SMPTE类型之一)
resolution - 时序分辨率
InvalidMidiDataException - 如果
divisionType无效
PPQ ,
SMPTE_24 ,
SMPTE_25 ,
SMPTE_30DROP ,
SMPTE_30 ,
getDivisionType() ,
getResolution() ,
getTracks()
public Sequence(float divisionType,
int resolution,
int numTracks)
throws InvalidMidiDataException
divisionType是PPQ(每四分之一音符的脉冲),分辨率以每搏输出的时数指定。
对于divisionType定时, divisionType指定每秒钟的帧数, divisionType以帧为单位指定。
将使用numTracks指定的曲目数来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()
public float getDivisionType()
PPQ ,
SMPTE_24 ,
SMPTE_25 ,
SMPTE_30DROP ,
SMPTE_30 ,
Sequence(float, int) ,
MidiFileFormat.getDivisionType()
public int getResolution()
getDivisionType() ,
Sequence(float, int) ,
MidiFileFormat.getResolution()
public Track createTrack()
getTracks() 。
可以使用deleteTrack(javax.sound.midi.Track)从序列中deleteTrack(javax.sound.midi.Track) 。
public boolean deleteTrack(Track track)
track - 要删除的轨道
true如果轨道存在于轨道中并被删除,否则为
false 。
createTrack() ,
getTracks()
public Track[] getTracks()
createTrack() ,
deleteTrack(javax.sound.midi.Track)
public long getMicrosecondLength()
public long getTickLength()
getMicrosecondLength()
public Patch[] getPatchList()
Instrument对象加载到Synthesizer 。
Patch对象
Synthesizer.loadInstruments(Soundbank, Patch[])
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.