- java.lang.Object
-
- javax.sound.midi.Track
-
public class Track extends Object
MIDIトラックは、標準のMIDIファイルにほかのトラックとともに保存できる、MIDIイベント(タイムスタンプの付いたMIDIデータ)の独立したストリームです。 MIDIの仕様で許容されるMIDIデータは16チャネルだけですが、トラックを使用することでこの制限を回避できます。 1つのMIDIファイルには、16チャネルまでのMIDIデータの独自のストリームを含んだトラックを任意の数だけ格納できます。Track
は、Sequencer
によって演奏されるデータの階層において中間レベルを占有: シーケンサは、MIDIイベントを含むトラックを含むシーケンスを再生します。 シーケンサには、個々のトラックをミュートまたはソロにするコントロールが用意されている場合があります。トラックのタイミング情報や解像度は、そのトラックを格納しているシーケンスによって制御および保存されます。 与えられた
Track
は、そのタイミングを維持する特定のSequence
に属しているとみなされます。 そのため、新しい(空の)トラックを作成するには、Track
コンストラクタを直接呼び出すのではなく、Sequence.createTrack()
メソッドを呼び出します。Track
クラスでは、MidiEvent
オブジェクトを追加または削除することでトラックを編集するメソッドが提供されます。 これらの操作を行なっても、イベント・リストの時間順は正しく保たれます。 また、トラックのサイズをそのトラックに含まれるイベント数、またはティック単位でのデュレーションで取得するメソッドも含まれています。
-
-
メソッドの詳細
-
add
public boolean add(MidiEvent event)
トラックに新しいイベントを追加します。 ただし、そのイベントがすでにそのトラックに含まれている場合は、ふたたび追加することはできません。 イベントのリストは時間順に維持されるため、イベントはリストの必ずしも最後ではなく、適切な場所に挿入されます。- パラメータ:
event
- 追加するイベント- 戻り値:
- そのイベントがそのトラックに含まれておらず、かつ追加された場合は
true
、そうでない場合はfalse
-
remove
public boolean remove(MidiEvent event)
指定したイベントをトラックから削除します。- パラメータ:
event
- 削除するイベント- 戻り値:
- そのイベントがそのトラックに存在し、かつ削除された場合は
true
、そうでない場合はfalse
-
get
public MidiEvent get(int index) throws ArrayIndexOutOfBoundsException
指定したインデックスのイベントを取得します。- パラメータ:
index
- 取得するイベントのイベント・ベクターによる位置- 戻り値:
- 指定したインデックスのイベント
- 例外:
ArrayIndexOutOfBoundsException
- 指定したインデックスが負、またはこのトラックの現在のサイズ以上である場合- 関連項目:
size()
-
size
public int size()
このトラックに含まれるイベントの数を取得します。- 戻り値:
- このトラックのイベント・ベクターのサイズ
-
ticks
public long ticks()
トラックの長さをMIDIティック単位で取得します。 (1ティックの秒単位でのデュレーションは、このトラックを格納しているSequence
のタイミング解像度と、シーケンサで設定した音楽のテンポによって決まります)。- 戻り値:
- ティック単位でのデュレーション
- 関連項目:
Sequence(float, int)
,Sequencer.setTempoInBPM(float)
,Sequencer.getTickPosition()
-
-