|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
MIDI
を再生するハードウェアデバイスまたはソフトウェアデバイスを、sequencer と言います。MIDI シーケンスには、標準 MIDI ファイルから読み込まれたデータなどの、時刻表示された MIDI データのリストが含まれます。ほとんどのシーケンサは、シーケンスを作成し編集する機能も提供します。
sequence
Sequencer
インタフェースには、次のような基本的な MIDI シーケンサ操作が含まれます。
Sequencer
がアクセスできるオブジェクトを通じて間接的に、次の操作もサポートされます。
Sequencer.SyncMode
,
addMetaEventListener(javax.sound.midi.MetaEventListener)
,
ControllerEventListener
,
Receiver
,
Transmitter
,
MidiDevice
入れ子クラスの概要 | |
static class |
Sequencer.SyncMode
SyncMode オブジェクトは、MIDI シーケンサで扱われている時間をマスターまたはスレーブデバイスと同期化する方法の 1 つを表現しています。 |
クラス javax.sound.midi.MidiDevice から継承した入れ子クラス |
MidiDevice.Info |
メソッドの概要 | |
int[] |
addControllerEventListener(ControllerEventListener listener,
int[] controllers)
要求された種類の制御変更イベントをシーケンサが処理する時に通知を受けとるためのコントローライベントリスナーを登録します。 |
boolean |
addMetaEventListener(MetaEventListener listener)
メタイベントがシーケンスで発生してシーケンサによって処理される時に通知を受けとるためメタイベントリスナーを登録します。 |
Sequencer.SyncMode |
getMasterSyncMode()
このシーケンサの現在のマスター同期モードを取得します。 |
Sequencer.SyncMode[] |
getMasterSyncModes()
このシーケンサがサポートするマスター同期モードのセットを取得します。 |
long |
getMicrosecondLength()
現在のシーケンスの長さをマイクロ秒単位で取得します。 |
long |
getMicrosecondPosition()
シーケンス上の現在の位置をマイクロ秒単位で取得します。 |
Sequence |
getSequence()
シーケンサが現在操作しているシーケンスを取得します。 |
Sequencer.SyncMode |
getSlaveSyncMode()
このシーケンサの現在のスレーブ同期モードを取得します。 |
Sequencer.SyncMode[] |
getSlaveSyncModes()
シーケンサがサポートするスレーブ同期モードのセットを取得します。 |
float |
getTempoFactor()
シーケンサの現在のテンポ係数を返します。 |
float |
getTempoInBPM()
1 分当たりのビートで表示される現在のテンポを取得します。 |
float |
getTempoInMPQ()
四分音符当たりのマイクロ秒で表示される現在のテンポを取得します。 |
long |
getTickLength()
MIDI ティックで表示される現在のシーケンスの長さを取得します。 |
long |
getTickPosition()
シーケンスの現在の位置を MIDI ティック単位で取得します (1 ティックの秒単位でのデュレーションは、 に格納されているテンポとタイミング解像度の両方によって決まる)。 |
boolean |
getTrackMute(int track)
トラックの現在のミュート状態を取得します。 |
boolean |
getTrackSolo(int track)
トラックの現在のソロ状態を取得します。 |
boolean |
isRecording()
シーケンサが現在録音中かどうかを示します。 |
boolean |
isRunning()
シーケンスが現在実行中かどうかを示します。 |
void |
recordDisable(Track track)
指定されたトラックに対して、録音不可にします。 |
void |
recordEnable(Track track,
int channel)
指定されたトラックに、特定のチャネルで受信するイベントを録音する準備をします。 |
int[] |
removeControllerEventListener(ControllerEventListener listener,
int[] controllers)
1 つ以上の種類のコントローライベントについて、コントローライベントリスナーの処理対象を削除します。 |
void |
removeMetaEventListener(MetaEventListener listener)
実際にリスナーが登録された場合、このシーケンサの登録済リスナーのリストから指定されたメタイベントリスナーを削除します。 |
void |
setMasterSyncMode(Sequencer.SyncMode sync)
このシーケンサが使用するタイミング情報の転送元を設定します。 |
void |
setMicrosecondPosition(long microseconds)
シーケンス上の現在の位置をマイクロ秒単位で設定します。 |
void |
setSequence(InputStream stream)
シーケンサが操作する現在のシーケンスを設定します。 |
void |
setSequence(Sequence sequence)
シーケンサが操作する現在のシーケンスを設定します。 |
void |
setSlaveSyncMode(Sequencer.SyncMode sync)
シーケンサのスレーブ同期モードを設定します。 |
void |
setTempoFactor(float factor)
指定された係数によりシーケンサの実際の再生テンポをスケーリングします。 |
void |
setTempoInBPM(float bpm)
テンポを 1 分当たりのビートで設定します。 |
void |
setTempoInMPQ(float mpq)
テンポを四分音符当たりのマイクロ秒で設定します。 |
void |
setTickPosition(long tick)
現在のシーケンサの位置を MIDI ティックで設定します。 |
void |
setTrackMute(int track,
boolean mute)
トラックのミュート状態を設定します。 |
void |
setTrackSolo(int track,
boolean solo)
トラックのソロ状態を設定します。 |
void |
start()
現在ロードされているシーケンスの MIDI データの再生を開始します。 |
void |
startRecording()
MIDI データの録音および再生を開始します。 |
void |
stop()
アクティブの場合録音を停止し、現在ロードされているシーケンスがあれば、その再生を停止します。 |
void |
stopRecording()
アクティブの場合録音を停止します。 |
インタフェース javax.sound.midi.MidiDevice から継承したメソッド |
close, getDeviceInfo, getMaxReceivers, getMaxTransmitters, getReceiver, getTransmitter, isOpen, open |
メソッドの詳細 |
public void setSequence(Sequence sequence) throws InvalidMidiDataException
sequence
- ロードするシーケンス
InvalidMidiDataException
- シーケンスが無効な MIDI データを含んでいるか、またはシーケンスがサポートされていない場合public void setSequence(InputStream stream) throws IOException, InvalidMidiDataException
stream
- MIDI ファイルデータを含むストリーム
IOException
- ストリームの読み込み中に入出力例外が発生した場合
InvalidMidiDataException
- ストリームで無効なデータが発生したか、またはストリームがサポートされていない場合public Sequence getSequence()
null
public void start()
start()
,
stop()
public void stop()
start()
,
isRunning()
public boolean isRunning()
false
です。start()
または startRecording()
が呼び出されると、シーケンサは実行を開始します。その後シーケンスの再生が完了するか、または stop()
が呼び出されるまで、isRunning
が true
を返します。
true
、そうでない場合は false
public void startRecording()
トラックはデフォルトでは録音可能になっていません。MIDI データを録音するためには、少なくとも 1 つのトラックが具体的に録音可能になっている必要があります。
startRecording()
,
recordEnable(javax.sound.midi.Track, int)
,
recordDisable(javax.sound.midi.Track)
public void stopRecording()
startRecording()
,
isRecording()
public boolean isRecording()
false
です。シーケンサは、startRecording()
が呼び出されると録音を開始し、その後は stop()
または stopRecording()
が呼び出されるまで true
を返します。
true
、そうでない場合は false
public void recordEnable(Track track, int channel)
track
- イベントが録音されるトラックchannel
- イベントが受信されるチャネル。チャネル値に -1 が指定されている場合、トラックは全チャネルからのデータを受信する
IllegalArgumentException
- トラックが現在のシーケンスの一部でない場合、スローされるpublic void recordDisable(Track track)
track
- 録音を不可にするトラック、または全トラックを録音不可にする場合は null
public float getTempoInBPM()
getTempoFactor()
,
setTempoInBPM(float)
,
getTempoInMPQ()
public void setTempoInBPM(float bpm)
bpm
- 1 分当たりのビートで表示される望ましい新たなテンポgetTempoFactor()
,
setTempoInMPQ(float)
,
getTempoInBPM()
public float getTempoInMPQ()
getTempoFactor()
,
setTempoInMPQ(float)
,
getTempoInBPM()
public void setTempoInMPQ(float mpq)
mpq
- 四分音符当たりのマイクロ秒で表示される望ましい新たなテンポgetTempoFactor()
,
setTempoInBPM(float)
,
getTempoInMPQ()
public void setTempoFactor(float factor)
getTempoInMPQ()
および getTempoInBPM()
によって返された値には影響しません。これらの値はスケーリング前のテンポを示します。
外部同期が使用されている場合はテンポ係数は調整できません。外部同期が使用されている場合、setTempoFactor
はテンポ係数を常に 1.0 に設定します。
factor
- 要求されたテンポスカラーgetTempoFactor()
public float getTempoFactor()
setTempoFactor(float)
public long getTickLength()
public long getTickPosition()
Sequence
に格納されているテンポとタイミング解像度の両方によって決まる)。
setTickPosition(long)
public void setTickPosition(long tick)
tick
- 望ましいティックの位置getTickPosition()
public long getMicrosecondLength()
public long getMicrosecondPosition()
MidiDevice
内の getMicrosecondPosition
setMicrosecondPosition(long)
public void setMicrosecondPosition(long microseconds)
microseconds
- マイクロ秒単位での望ましい位置getMicrosecondPosition()
public void setMasterSyncMode(Sequencer.SyncMode sync)
sync
の値によって内部クロック、MIDI クロック、または MIDI タイムコードのどれかになります。sync
引数は、getMasterSyncModes()
によって返される、サポート対象モードの 1 つであることが必要です。
sync
- 望ましいマスター同期モードSequencer.SyncMode.INTERNAL_CLOCK
,
Sequencer.SyncMode.MIDI_SYNC
,
Sequencer.SyncMode.MIDI_TIME_CODE
,
getMasterSyncMode()
public Sequencer.SyncMode getMasterSyncMode()
setMasterSyncMode(Sequencer.SyncMode)
,
getMasterSyncModes()
public Sequencer.SyncMode[] getMasterSyncModes()
Sequencer.SyncMode.INTERNAL_CLOCK
,
Sequencer.SyncMode.MIDI_SYNC
,
Sequencer.SyncMode.MIDI_TIME_CODE
,
getMasterSyncMode()
,
setMasterSyncMode(Sequencer.SyncMode)
public void setSlaveSyncMode(Sequencer.SyncMode sync)
sync
引数は、getSlaveSyncModes()
によって返される、サポート対象モードの 1 つであることが必要です。
sync
- 望ましいスレーブ同期モードSequencer.SyncMode.MIDI_SYNC
,
Sequencer.SyncMode.MIDI_TIME_CODE
,
Sequencer.SyncMode.NO_SYNC
,
getSlaveSyncModes()
public Sequencer.SyncMode getSlaveSyncMode()
setSlaveSyncMode(Sequencer.SyncMode)
,
getSlaveSyncModes()
public Sequencer.SyncMode[] getSlaveSyncModes()
Sequencer.SyncMode.MIDI_SYNC
,
Sequencer.SyncMode.MIDI_TIME_CODE
,
Sequencer.SyncMode.NO_SYNC
public void setTrackMute(int track, boolean mute)
getTrackMute(int)
の呼び出しを行います。
track
- トラック番号。現在のシーケンスのトラックは、0 からシーケンスのトラック数引く 1 の範囲で番号付けされるmute
- トラックの新しいミュート状態。true
はトラックがミュートであることを意味し、false
はトラックがミュートでないことを意味するgetSequence()
public boolean getTrackMute(int track)
track
- トラック番号。現在のシーケンスのトラックは、0 からシーケンスのトラック数引く 1 の範囲で番号付けされる
true
、そうでない場合は false
public void setTrackSolo(int track, boolean solo)
solo
が true
の場合は、このトラックおよびソロになっている他のトラックの音だけが聞こえます。solo
が false
の場合は、ソロになっている他のトラックの音だけが聞こえますが、ソロになっているトラックがないときはミュートになっていないトラックの音がすべて聞こえます。
このメソッドは多数の理由によって失敗することがあります。たとえば、指定されたトラック番号が現在のシーケンスに有効でない、あるいはシーケンサがこの機能をサポートしていない、などです。この操作が完了したかどうかを確認する必要のあるアプリケーションの場合、この呼び出しに続いて
の呼び出しを行います。
getTrackSolo(int)
track
- トラック番号。現在のシーケンスのトラックは、0 からシーケンスのトラック数引く 1 の範囲で番号付けされるsolo
- トラックの新しいソロ状態。true
はトラックがソロであることを意味し、false
はトラックがソロでないことを意味するgetSequence()
public boolean getTrackSolo(int track)
track
- トラック番号。現在のシーケンスのトラックは、0 からシーケンスのトラック数引く 1 の範囲で番号付けされる
true
、そうでない場合は false
public boolean addMetaEventListener(MetaEventListener listener)
listener
- 追加するリスナー
true
、そうでない場合は false
removeMetaEventListener(javax.sound.midi.MetaEventListener)
,
MetaEventListener
,
MetaMessage
public void removeMetaEventListener(MetaEventListener listener)
listener
- 削除するメタイベントリスナーaddMetaEventListener(javax.sound.midi.MetaEventListener)
public int[] addControllerEventListener(ControllerEventListener listener, int[] controllers)
controllers
引数によって指定されます (各番号は 0 から 127 まで。さまざまな種類のコントローラに対応する番号については、「MIDI 1.0 Specification」を参照)。
返された配列には、リスナーが今受信しようとするイベントの MIDI コントローラ番号を含みます。シーケンサによってはコントローライベント通知をサポートしていない場合があり、その場合、配列の長さは 0 です。他のシーケンサはいくつかのコントローラの通知をサポートしますが、全コントローラについてではありません。このメソッドは繰り返し呼び出されることがあります。各回とも、返された配列は、その特定の呼び出しで要求されたコントローラだけでなく、リスナーが通知を受ける全コントローラを示します
listener
- 登録済リスナーのリストに追加するコントローライベントリスナーcontrollers
- 変更通知が要求される MIDI コントローラ番号
removeControllerEventListener(javax.sound.midi.ControllerEventListener, int[])
,
ControllerEventListener
public int[] removeControllerEventListener(ControllerEventListener listener, int[] controllers)
controllers
引数は、リスナーが今後変更通知を受けとらないコントローラに対応する MIDI 番号の配列です。登録済リスナーのリストからこのリスナーを完全に削除するには、controllers
に null
を渡します。戻された配列には、リスナーが今後イベントを受信する MIDI コントローラの番号を含んでいます。リスナーがどのコントローラの変更通知も受信しない場合、配列の長さは 0 です。
listener
- 古いリスナーcontrollers
- 変更通知を取り消す MIDI コントローラ番号、または全コントローラに対して取り消す場合は null
addControllerEventListener(javax.sound.midi.ControllerEventListener, int[])
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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.