java.lang.Object
javax.sound.midi.Sequence
Sequence
是一种包含音乐信息(通常是整首歌曲或乐曲)的数据结构,可以由 Sequencer
对象播放。具体来说,Sequence
包含计时信息和一个或多个轨道。每个 track
都包含一系列 MIDI 事件(例如音符开启、音符关闭、程序更改和元事件)。序列的计时信息指定用于为序列中的事件添加时间戳的单元类型。
通过将文件读入输入流并调用 MidiSystem
的 getSequence
方法之一,可以从 MIDI 文件创建 Sequence
。也可以通过将新的 Tracks
添加到空的 Sequence
并将 MidiEvent
对象添加到这些 Tracks
来从头开始构建序列。
- 参见:
-
字段摘要
字段修饰符和类型Field描述protected float
序列的时序划分类型。static final float
基于速度的计时类型,分辨率以每四分音符的脉冲数(滴答声)表示。protected int
序列的时间分辨率。static final float
基于 SMPTE 的计时类型,每秒 24 帧(分辨率以每帧的滴答数表示)。static final float
基于 SMPTE 的计时类型,每秒 25 帧(分辨率以每帧的滴答数表示)。static final float
基于 SMPTE 的计时类型,每秒 30 帧(分辨率以每帧的滴答数表示)。static final float
基于 SMPTE 的计时类型,每秒 29.97 帧(分辨率以每帧的滴答数表示)。此序列中的 MIDI 轨道。 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述创建一个新的、最初为空的轨道作为此序列的一部分。boolean
deleteTrack
(Track track) 从序列中删除指定的轨道。float
获取此序列的时序划分类型。long
获取此序列的持续时间,以微秒表示。Patch[]
获取此序列中引用的补丁列表。int
获得此序列的时间分辨率。long
获取此序列的持续时间,以 MIDI 节拍数表示。Track[]
获得包含此序列中所有轨道的数组。
-
字段详细信息
-
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序列的时序划分类型。- 参见:
-
resolution
protected int resolution序列的时间分辨率。- 参见:
-
tracks
此序列中的 MIDI 轨道。- 参见:
-
-
构造方法详细信息
-
Sequence
使用指定的计时划分类型和计时分辨率构造一个新的 MIDI 序列。分区类型必须是公认的 MIDI 计时类型之一。对于基于速度的计时,divisionType
是 PPQ(每四分音符的脉冲数),分辨率以每拍的节拍数指定。对于 SMTPE 时序,divisionType
指定每秒的帧数,分辨率以每帧的滴答数指定。该序列将不包含初始轨道。可以使用createTrack()
和deleteTrack(javax.sound.midi.Track)
在序列中添加或删除轨道。- 参数:
divisionType
- 时序划分类型(PPQ 或 SMPTE 类型之一)resolution
- 时序分辨率- 抛出:
InvalidMidiDataException
- 如果divisionType
无效- 参见:
-
Sequence
使用指定的计时划分类型、计时分辨率和轨道数构造一个新的 MIDI 序列。分区类型必须是公认的 MIDI 计时类型之一。对于基于速度的计时,divisionType
是 PPQ(每四分音符的脉冲数),分辨率以每拍的节拍数指定。对于 SMTPE 时序,divisionType
指定每秒的帧数,分辨率以每帧的滴答数指定。该序列将使用numTracks
指定的轨道数进行初始化。这些轨道最初是空的(即它们仅包含元事件轨道结束)。可以使用getTracks()
方法检索轨道进行编辑。使用createTrack()
和deleteTrack(javax.sound.midi.Track)
可以添加额外的曲目,或删除现有的曲目。- 参数:
divisionType
- 时序划分类型(PPQ 或 SMPTE 类型之一)resolution
- 时序分辨率numTracks
- 序列中的初始轨道数- 抛出:
InvalidMidiDataException
- 如果divisionType
无效- 参见:
-
-
方法详情
-
getDivisionType
public float getDivisionType()获取此序列的时序划分类型。- 返回:
- 划分类型(PPQ 或 SMPTE 类型之一)
- 参见:
-
getResolution
public int getResolution()获得此序列的时间分辨率。如果序列的分割类型为 PPQ,则分辨率以每拍的滴答数为单位指定。对于 SMTPE 时序,分辨率以每帧的刻度为单位指定。- 返回:
- 每拍 (PPQ) 或每帧 (SMPTE) 的滴答数
- 参见:
-
createTrack
创建一个新的、最初为空的轨道作为此序列的一部分。该曲目最初包含元事件 End of Track。返回新创建的曲目。可以使用getTracks()
检索序列中的所有曲目。可以使用deleteTrack(javax.sound.midi.Track)
从序列中删除曲目。- 返回:
- 新创建的轨道
-
deleteTrack
从序列中删除指定的轨道。- 参数:
track
- 要删除的轨道- 返回:
true
如果轨道存在并被移除,否则false
- 参见:
-
getTracks
获得包含此序列中所有轨道的数组。如果序列不包含轨道,则返回长度为 0 的数组。- 返回:
- 曲目数组
- 参见:
-
getMicrosecondLength
public long getMicrosecondLength()获取此序列的持续时间,以微秒表示。- 返回:
- 此序列的持续时间(以微秒为单位)
-
getTickLength
public long getTickLength()获取此序列的持续时间,以 MIDI 节拍数表示。- 返回:
- 此序列的刻度长度
- 参见:
-
getPatchList
获取此序列中引用的补丁列表。此补丁列表可用于将所需的Instrument
对象加载到Synthesizer
中。- 返回:
-
此序列中使用的
Patch
对象数组 - 参见:
-