public class SysexMessage extends MidiMessage
SysexMessage
オブジェクトは、MIDIシステム・エクスクルーシブ・メッセージを表します。
MIDIファイルから読み込まれるシステム・エクスクルーシブ・メッセージには、必ず長さが定義されています。MIDIファイルから読み込まれるシステム・エクスクルーシブ・メッセージのデータは、システム・エクスクルーシブ・メッセージ・ステータス・バイト(0xF0または0xF7)、すべてのメッセージ・データ・バイト、最後にエンドオブエクスクルーシブ・フラグ(0xF7)の順にSysexMessage
のデータ配列に格納されます。そのため、SysexMessage
オブジェクトが報告する長さは、システム・エクスクルーシブ・データの長さにステータス・バイトの1バイトとエンドオブエクスクルーシブ・フラグの1バイトの合計2バイトを加えた長さになります。
標準MIDIファイル仕様の規定では、MIDIファイルから読み込まれるSysexMessage
のステータス・バイトの正当な値には次の2つがあります。
MIDIワイヤー・プロトコルを使用して受信されたシステム・エクスクルーシブ・データがJava Soundによって使用されると、データは1つ以上のSysexMessages
に配置されます。この場合、システム・エクスクルーシブ・データの長さは事前にはわかりません。システム・エクスクルーシブ・データの終わりは、MIDIワイヤー・バイト・ストリームのエンドオブエクスクルーシブ・フラグ(0xF7)でマークされています。
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)です。
|
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)
システム・エクスクルーシブ・メッセージのデータを設定します。
|
getLength, getMessage, getStatus
public static final int SYSTEM_EXCLUSIVE
public static final int SPECIAL_SYSTEM_EXCLUSIVE
public SysexMessage()
SysexMessage
を構築します。新しいメッセージの内容には、有効なMIDIメッセージが指定されることが保証されます。構築後にメッセージの内容を設定するには、setMessage
メソッドの1つを使用します。setMessage(byte[], int)
public SysexMessage(byte[] data, int length) throws InvalidMidiDataException
SysexMessage
を構築し、メッセージのデータを設定します。データ配列の先頭のバイトは、有効なシステム・エクスクルーシブ・ステータス・バイト(0xF0または0xF7)である必要があります。メッセージの内容は、setMessage
メソッドの1つを使用して変更できます。data
- ステータス・バイトを含むシステム・エクスクルーシブ・メッセージ・データlength
- 配列内の有効なメッセージ・データの長さ(ステータス・バイトを含む)。負でない、data.length
以下の数値InvalidMidiDataException
- パラメータ値が有効なMIDIメタ・メッセージを指定していない場合。setMessage(byte[], int)
, setMessage(int, byte[], int)
, getData()
public SysexMessage(int status, byte[] data, int length) throws InvalidMidiDataException
SysexMessage
を構築し、メッセージのデータを設定します。メッセージの内容は、setMessage
メソッドの1つを使用して変更できます。status
- メッセージのステータス・バイト。システム・エクスクルーシブの有効なステータス・バイト(0xF0または0xF7)である必要がありますdata
- システム・エクスクルーシブ・メッセージのデータ(ステータス・バイトを除く)length
- 配列内の有効なメッセージ・データの長さ。負でない、data.length
以下の数値InvalidMidiDataException
- パラメータ値が有効なMIDIメタ・メッセージを指定していない場合。setMessage(byte[], int)
, setMessage(int, byte[], int)
, getData()
protected SysexMessage(byte[] data)
SysexMessage
を構築します。data
- 詳細なメッセージを含むバイトの配列。メッセージ・データはsetMessage
メソッドを使って変更できる。setMessage(byte[], int)
public void setMessage(byte[] data, int length) throws InvalidMidiDataException
setMessage
、クラス: MidiMessage
data
- システム・エクスクルーシブ・メッセージのデータlength
- 配列内の有効なメッセージ・データの長さ(ステータス・バイトを含む)。InvalidMidiDataException
- パラメータ値が有効なMIDIメタ・メッセージを指定していない場合public void setMessage(int status, byte[] data, int length) throws InvalidMidiDataException
status
- メッセージのステータス・バイト(0xF0または0xF7)data
- システム・エクスクルーシブ・メッセージのデータlength
- 配列内の有効なメッセージ・データの長さInvalidMidiDataException
- sysexメッセージに対してステータス・バイトが無効な場合public byte[] getData()
public Object clone()
clone
、クラス: MidiMessage
Cloneable
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.