JavaTM Platform
Standard Ed. 6

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)

メソッドの概要
 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
 

メソッドの詳細

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 Platform
Standard Ed. 6

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

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。