JavaTM 2
Platform
Std. Ed. v1.4.0

javax.sound.midi
クラス Track

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 オブジェクトを追加または削除することでトラックを編集するメソッドが提供されます。これらの操作を行なっても、イベントリストの時間順は正しく保たれます。また、トラックのサイズをそのトラックに含まれるイベント数、またはティック単位でのデュレーションで取得するメソッドも含まれています。

関連項目:
Sequencer.setTrackMute(int, boolean), Sequencer.setTrackSolo(int, boolean)

フィールドの概要
protected  Vector events
          このトラックに含まれる MidiEvents のリスト
 
メソッドの概要
 boolean add(MidiEvent event)
          トラックに新しいイベントを追加します。
 MidiEvent get(int index)
          指定したインデックスのイベントを取得します。
 boolean remove(MidiEvent event)
          指定したイベントをトラックから削除します。
 int size()
          このトラックに含まれるイベントの数を取得します。
 long ticks()
          トラックの長さを MIDI ティック単位で取得します (1 ティックの秒単位でのデュレーションは、このトラックを格納している Sequence のタイミング解像度と、シーケンサで設定した音楽のテンポによって決まる)。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

events

protected Vector events
このトラックに含まれる MidiEvents のリスト

メソッドの詳細

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 - 指定したインデックスが負、またはこのトラックの現在のサイズ以上である場合
ArrayIndexOutOfBoundsException
関連項目:
size()

size

public int size()
このトラックに含まれるイベントの数を取得します。

戻り値:
このトラックのイベントベクタのサイズ

ticks

public long ticks()
トラックの長さを MIDI ティック単位で取得します (1 ティックの秒単位でのデュレーションは、このトラックを格納している Sequence のタイミング解像度と、シーケンサで設定した音楽のテンポによって決まる)。

戻り値:
ティック単位でのデュレーション
関連項目:
Sequence.Sequence(float, int), Sequencer.setTempoInBPM(float), Sequencer.getTickPosition()

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.