- java.lang.Object
-
- javax.sound.midi.MidiMessage
-
- javax.sound.midi.SysexMessage
-
- すべての実装されたインタフェース:
Cloneable
public class SysexMessage extends MidiMessage
SysexMessage
オブジェクトは、MIDIシステム・エクスクルーシブ・メッセージを表します。MIDIファイルから読み込まれるシステム・エクスクルーシブ・メッセージには、必ず長さが定義されています。 MIDIファイルから読み込まれるシステム・エクスクルーシブ・メッセージのデータは、システム・エクスクルーシブ・メッセージ・ステータス・バイト(0xF0または0xF7)、すべてのメッセージ・データ・バイト、最後にエンドオブエクスクルーシブ・フラグ(0xF7)の順に
SysexMessage
のデータ配列に格納されます。 そのため、SysexMessage
オブジェクトが報告する長さは、システム・エクスクルーシブ・データの長さにステータス・バイトの1バイトとエンドオブエクスクルーシブ・フラグの1バイトの合計2バイトを加えた長さになります。標準MIDIファイル仕様の規定では、MIDIファイルから読み込まれる
SysexMessage
のステータス・バイトの正当な値には次の2つがあります。- 0xF0: システム・エクスクルーシブ・メッセージ(MIDIワイヤー・プロトコルでの場合と同じ)
- 0xF7: 特別なシステム・エクスクルーシブ・メッセージ
SysexMessages
に配置されます。 この場合、システム・エクスクルーシブ・データの長さは事前にはわかりません。システム・エクスクルーシブ・データの終わりは、MIDIワイヤー・バイト・ストリームのエンドオブエクスクルーシブ・フラグ(0xF7)でマークされています。- 0xF0: システム・エクスクルーシブ・メッセージ(MIDIワイヤー・プロトコルでの場合と同じ)
- 0xF7: エンド・オブ・エクスクルーシブ(EOX)
SysexMessage
オブジェクトは、状態値が0xF0です。 このメッセージに、そのすべてのシステム・エクスクルーシブ・データが含まれている場合、その末尾はステータス・バイト0xF7 (EOX)です。 それ以外の場合は、状態値が0xF7の1つ以上のSysexMessages
で追加のシステム・エクスクルーシブ・データが送信されます。 そのシステム・エクスクルーシブ・メッセージのデータの末尾が含まれているSysexMessage
は、末尾の値がシステム・エクスクルーシブ・メッセージの終わりを表す0xF7 (EOX)です。SysexMessages
オブジェクトからのシステム・エクスクルーシブ・データがMIDIワイヤー・プロトコルで転送される場合は、先頭の0xF0ステータス・バイト、システム・エクスクルーシブ・データ自体、および末尾の0xF7 (EOX)バイトだけが送信されます。SysexMessage
に追加のシステム・エクスクルーシブ・データが含まれていることを示す0xF7ステータス・バイトは、MIDIワイヤー・プロトコルでは送信されません。
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static int
SPECIAL_SYSTEM_EXCLUSIVE
MIDIファイルで使われる、特別なシステム・エクスクルーシブ・メッセージのステータス・バイトです(0xF7または247)。static int
SYSTEM_EXCLUSIVE
システム・エクスクルーシブ・メッセージのステータス・バイト(0xF0または240)です。-
クラス javax.sound.midi.MidiMessageで宣言されたフィールド
data, length
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 SysexMessage()
新しいSysexMessage
を構築します。protected
SysexMessage(byte[] data)
新しいSysexMessage
を構築します。SysexMessage(byte[] data, int length)
新しいSysexMessage
を構築し、メッセージのデータを設定します。SysexMessage(int status, byte[] data, int length)
新しいSysexMessage
を構築し、メッセージのデータを設定します。
-
メソッドのサマリー
修飾子と型 メソッド 説明 Object
clone()
このオブジェクトと同じクラスで、同じ内容の新しいオブジェクトを作成します。byte[]
getData()
システム・エクスクルーシブ・メッセージのデータのコピーを取得します。void
setMessage(byte[] data, int length)
システム・エクスクルーシブ・メッセージのデータを設定します。void
setMessage(int status, byte[] data, int length)
システム・エクスクルーシブ・メッセージのデータを設定します。-
クラス javax.sound.midi.MidiMessageで宣言されたメソッド
getLength, getMessage, getStatus
-
-
-
-
コンストラクタの詳細
-
SysexMessage
public SysexMessage()
新しいSysexMessage
を構築します。 新しいメッセージの内容には、有効なMIDIメッセージが指定されることが保証されます。 構築後にメッセージの内容を設定するには、setMessage
メソッドの1つを使用します。- 関連項目:
setMessage(byte[], int)
-
SysexMessage
public SysexMessage(byte[] data, int length) throws InvalidMidiDataException
新しいSysexMessage
を構築し、メッセージのデータを設定します。 データ配列の先頭のバイトは、有効なシステム・エクスクルーシブ・ステータス・バイト(0xF0または0xF7)である必要があります。 メッセージの内容は、setMessage
メソッドの1つを使用して変更できます。- パラメータ:
data
- ステータス・バイトを含むシステム・エクスクルーシブ・メッセージ・データlength
- 配列内の有効なメッセージ・データの長さ(ステータス・バイトを含む)。負でない、data.length
以下の数値- 例外:
InvalidMidiDataException
- パラメータ値が有効なMIDIメタ・メッセージを指定していない場合- 導入されたバージョン:
- 1.7
- 関連項目:
setMessage(byte[], int)
,setMessage(int, byte[], int)
,getData()
-
SysexMessage
public SysexMessage(int status, byte[] data, int length) throws InvalidMidiDataException
新しいSysexMessage
を構築し、メッセージのデータを設定します。 メッセージの内容は、setMessage
メソッドの1つを使用して変更できます。- パラメータ:
status
- メッセージのステータス・バイト。システム・エクスクルーシブの有効なステータス・バイト(0xF0または0xF7)である必要がありますdata
- システム・エクスクルーシブ・メッセージのデータ(ステータス・バイトを除く)length
- 配列内の有効なメッセージ・データの長さ。負でない、data.length
以下の数値- 例外:
InvalidMidiDataException
- パラメータ値が有効なMIDIシステム排他メッセージを指定していない場合- 導入されたバージョン:
- 1.7
- 関連項目:
setMessage(byte[], int)
,setMessage(int, byte[], int)
,getData()
-
SysexMessage
protected SysexMessage(byte[] data)
新しいSysexMessage
を構築します。- パラメータ:
data
- 詳細なメッセージを含むバイトの配列。 メッセージ・データはsetMessage
メソッドを使って変更できる。- 関連項目:
setMessage(byte[], int)
-
-
メソッドの詳細
-
setMessage
public void setMessage(byte[] data, int length) throws InvalidMidiDataException
システム・エクスクルーシブ・メッセージのデータを設定します。 データ配列の先頭のバイトは、有効なシステム・エクスクルーシブ・ステータス・バイト(0xF0または0xF7)である必要があります。- オーバーライド:
setMessage
、クラス:MidiMessage
- パラメータ:
data
- システム・エクスクルーシブ・メッセージのデータlength
- ステータス・バイトを含む配列内の有効なメッセージ・データの長さ- 例外:
InvalidMidiDataException
- パラメータ値が有効なMIDIシステム排他メッセージを指定していない場合
-
setMessage
public void setMessage(int status, byte[] data, int length) throws InvalidMidiDataException
システム・エクスクルーシブ・メッセージのデータを設定します。- パラメータ:
status
- メッセージのステータス・バイト(0xF0または0xF7)data
- システム・エクスクルーシブ・メッセージのデータlength
- 配列内の有効なメッセージ・データの長さ- 例外:
InvalidMidiDataException
- ステータス・バイトがシステム排他メッセージに対して無効である場合
-
getData
public byte[] getData()
システム・エクスクルーシブ・メッセージのデータのコピーを取得します。 返されるバイトの配列に、ステータス・バイトは含まれません。- 戻り値:
- システム・エクスクルーシブ・メッセージ・データを含む配列
-
clone
public Object clone()
このオブジェクトと同じクラスで、同じ内容の新しいオブジェクトを作成します。- 定義:
clone
、クラス:MidiMessage
- 戻り値:
- このインスタンスの複製
- 関連項目:
Cloneable
-
-