模块  java.desktop
软件包  javax.sound.midi

Class Sequence


  • public class Sequence
    extends Object
    Sequence是包含可由Sequencer对象播放的音乐信息(通常是整首歌曲或乐曲)的数据结构。 具体而言, Sequence包含定时信息和一个或多个轨道。 每个track由一系列MIDI事件组成(例如音符,音符关闭,程序更改和元事件)。 序列的定时信息指定用于对序列中的事件加时间戳的单元类型。

    Sequence可以从MIDI文件通过文件读入的输入流和调用的一个来创建getSequence的方法MidiSystem 通过将新的Tracks添加到空Sequence ,并将MidiEvent对象添加到这些Tracks ,也可以从头开始构建序列。

    另请参见:
    Sequencer.setSequence(java.io.InputStream stream)Sequencer.setSequence(Sequence sequence)Track.add(MidiEvent)MidiFileFormat
    • 字段汇总

      字段  
      变量和类型 字段 描述
      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轨道。
    • 构造方法摘要

      构造方法  
      构造器 描述
      Sequence​(float divisionType, int resolution)
      构造具有指定时序分割类型和时序分辨率的新MIDI序列。
      Sequence​(float divisionType, int resolution, int numTracks)
      构造具有指定时序分割类型,时序分辨率和轨道数的新MIDI序列。
    • 构造方法详细信息

      • 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无效
        另请参见:
        PPQSMPTE_24SMPTE_25SMPTE_30DROPSMPTE_30getDivisionType()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无效
        另请参见:
        PPQSMPTE_24SMPTE_25SMPTE_30DROPSMPTE_30getDivisionType()getResolution()
    • 方法详细信息

      • 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()
      • getMicrosecondLength

        public long getMicrosecondLength()
        获得此序列的持续时间,以微秒表示。
        结果
        此序列的持续时间以微秒为单位
      • getTickLength

        public long getTickLength()
        获得此序列的持续时间,以MIDI刻度表示。
        结果
        这个序列的长度以刻度表示
        另请参见:
        getMicrosecondLength()