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 つを使用します。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
public void setMessage(int status, byte[] data, int length) throws InvalidMidiDataException
status
- メッセージのステータスバイト (0xF0 または 0xF7)data
- システムエクスクルーシブメッセージのデータlength
- 配列内の有効なメッセージデータの長さInvalidMidiDataException
public byte[] getData()
public Object clone()
clone
、クラス: MidiMessage
Cloneable
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.