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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。