モジュール java.desktop
パッケージ javax.sound.midi

クラスSequence


  • public class Sequence
    extends Object
    Sequenceは、Sequencerオブジェクトによって再生可能な音楽情報(多くの場合、曲全体または曲全体)を含むデータ構造です。 具体的には、Sequenceはタイミング情報および1つ以上のトラックを含んでいます。 trackは一連のMIDIイベント(ノート・オン、ノート・オフ、プログラム変更、メタ・イベントなど)で構成されています。 シーケンスのタイミング情報は、そのシーケンスのイベントのタイムスタンプに使用される単位を指定します。

    SequenceをMIDIファイルから作成するには、そのファイルを入力ストリームに読み込んでMidiSystemgetSequenceメソッドの1つを呼び出します。 また、シーケンスをゼロから作成するには、空きSequenceに新しいTracksを追加し、それらのTracksMidiEventオブジェクトを追加します。

    関連項目:
    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ベースのタイミング形式で、1秒当たり24フレームです(解像度は1フレーム当たりのティックで表示)。
      static float SMPTE_25
      SMPTEベースのタイミング形式で、1秒当たり25フレームです(解像度は1フレーム当たりのティックで表示)。
      static float SMPTE_30
      SMPTEベースのタイミング形式で、1秒当たり30フレームです(解像度は1フレーム当たりのティックで表示)。
      static float SMPTE_30DROP
      SMPTEベースのタイミング形式で、1秒当たり29.97フレームです(解像度は1フレーム当たりのティックで表示)。
      protected Vector<Track> tracks
      このシーケンスのMIDIトラックです。
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      Sequence​(float divisionType, int resolution)
      新しいMIDIシーケンスを、指定されたタイミング分割形式およびタイミング解像度で構築します。
      Sequence​(float divisionType, int resolution, int numTracks)
      新しいMIDIシーケンスを、指定されたタイミング分割形式、タイミング解像度、およびトラック数で構築します。
    • フィールドの詳細

      • PPQ

        public static final float PPQ
        テンポ・ベースのタイミング形式で、これに対する解像度は四分音符当たりのパルス(ティック)で表示されます。
        関連項目:
        Sequence(float, int)定数フィールド値
      • SMPTE_24

        public static final float SMPTE_24
        SMPTEベースのタイミング形式で、1秒当たり24フレームです(解像度は1フレーム当たりのティックで表示)。
        関連項目:
        Sequence(float, int)定数フィールド値
      • SMPTE_25

        public static final float SMPTE_25
        SMPTEベースのタイミング形式で、1秒当たり25フレームです(解像度は1フレーム当たりのティックで表示)。
        関連項目:
        Sequence(float, int)定数フィールド値
      • SMPTE_30DROP

        public static final float SMPTE_30DROP
        SMPTEベースのタイミング形式で、1秒当たり29.97フレームです(解像度は1フレーム当たりのティックで表示)。
        関連項目:
        Sequence(float, int)定数フィールド値
      • SMPTE_30

        public static final float SMPTE_30
        SMPTEベースのタイミング形式で、1秒当たり30フレームです(解像度は1フレーム当たりのティックで表示)。
        関連項目:
        Sequence(float, int)定数フィールド値
      • resolution

        protected int resolution
        シーケンスのタイミング解像度です。
        関連項目:
        getResolution()
      • tracks

        protected Vector<Track> tracks
        このシーケンスのMIDIトラックです。
        関連項目:
        getTracks()
    • コンストラクタの詳細

      • Sequence

        public Sequence​(float divisionType,
                        int resolution)
                 throws InvalidMidiDataException
        新しいMIDIシーケンスを、指定されたタイミング分割形式およびタイミング解像度で構築します。 分割形式は認識されたMIDIタイミング形式の1つであることが必要です。 テンポ・ベースのタイミングの場合、divisionTypeはPPQ (四分音符あたりのパルス)で、解像度はビートあたりのティックで指定されます。 SMTPEタイミングの場合、divisionTypeが1秒あたりのフレーム数を指定し、解像度はフレームあたりのティックで指定されます。 シーケンスには初期トラックを含みません。 トラックは、createTrack()deleteTrack(javax.sound.midi.Track)を使ってシーケンスに追加したり、シーケンスから削除することができます。
        パラメータ:
        divisionType - タイミング分割形式(PPQ、またはSMPTE形式の1つ)
        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タイミング形式の1つであることが必要です。 テンポ・ベースのタイミングの場合、divisionTypeはPPQ (四分音符あたりのパルス)で、解像度はビートあたりのティックで指定されます。 SMTPEタイミングの場合、divisionTypeが1秒あたりのフレーム数を指定し、解像度はフレームあたりのティックで指定されます。 シーケンスはnumTracksで指定されたトラック数で初期化されます。 これらのトラックは最初は空です(すなわち、トラックの終わりというメタイベントしか含まれていない)。 トラックは、getTracks()メソッドを使用して編集するために取り出すことができます。 createTrack()deleteTrack(javax.sound.midi.Track)を使って、追加のトラックを追加したり、既存のトラックを削除したりすることができます。
        パラメータ:
        divisionType - タイミング分割形式(PPQ、またはSMPTE形式の1つ)
        resolution - タイミング解像度
        numTracks - シーケンスのトラックの初期番号
        例外:
        InvalidMidiDataException - divisionTypeが有効でない場合
        関連項目:
        PPQ, SMPTE_24, SMPTE_25, SMPTE_30DROP, SMPTE_30, getDivisionType(), getResolution()
    • メソッドの詳細

      • getResolution

        public int getResolution()
        このシーケンスのタイミング解像度を取得します。 シーケンスの分割形式がPPQの場合、解像度は1ビートあたりのティックで指定されます。 SMTPEタイミングの場合、解像度は1フレームあたりのティックで指定されます。
        戻り値:
        1ビート当たり(PPQ)または1フレーム当たり(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[])