javax.sound.midi.MidiMessage
javax.sound.midi.SysexMessage
- 모두 구현된 인터페이스:
Cloneable
public class SysexMessage
extends MidiMessage
Sysex
오브젝트는 미디 시스템독점메시지(MIDI system exclusive message)를 나타낸다.
미디파일에서 읽힌 시스템독점메시지엔 반드시 정의된 길이가 있다. 미디파일의 시스템독점메시지의 데이터는 Sysex
의 데이터 배열에 다음과 같이 저장되어야 한다: 시스템독점메시지 상태바이트 (0xF0 또는 0xF7), 모든 메시지 데이터바이트, 마지막으로, 독점종료 플래그 (0xF7). 상태바이트 1바이트와 독점종료 플래그 1바이트. 따라서 2바이트를 시스템독점데이터의 길이에 더한 것이 Sysex
오브젝트가 알려주는 길이이다.
표준미디파일 명세가 이르는 바와 같이, 미디파일에서 읽힌 Sysex
에는 두 가지 상태바이트 값이 허용된다.
- 0xF0: 시스템 독점 메시지 (MIDI wire protocol
에서와 같다.) - 0xF7: 특수 시스템 독점 메시지
MIDI 와이어 프로토콜로써 수신하는 시스템독점 데이터 처리에 Java Sound를 쓰는 경우, Sysex
한 개 이상에 데이터를 배치해야 한다. 이 경우, 시스템독점데이터의 길이를 미리 알 수는 없고, MIDI wire 바이트스트림에서 시스템독점데이터의 끝은 end-of-exclusive 플래그(0xF7)로 표시된다.
- 0xF0: 시스템 독점 메시지 (MIDI wire protocol
에서와 같다.) - 0xF7: 독점끝(EOX)
특정 시스템독점메시지의 데이터를 담고있는 첫 Sysex
오브젝트는 상태값 0xF0를 가져야한다. 이 메시지는 메시지를 위한 시스템독점데이터를 전부 담고있는 경우, 상태바이트 0xF7 (EOX)로 끝나야 한다. 그렇지 않으면 상태값이 0xF7인 Sysex
하나 이상에 시스템독점데이터가 추가적으로 보내져야 한다. 시스템독점메시지의 마지막 데이터를 담은 Sysex
가 값 0xF7 (EOX)으로 끝나야 시스템독점메시지의 끝이 표시되는 것이다.
Sysex
오브젝트에서 온 시스템독점데이터가 MIDI wire protocol을 통해 전송되고 있을 때 시스템독점데이터 그 자체인 첫 상태바이트 0xF0와 막바이트 0xF7 (EOX)만이 전파돼야 하며, 지속되는 시스템독점데이터가 Sysex
에 담겼음을 나타낼 때 쓰이는 상태바이트 0xF7는 MIDI wire protocol를 통해 전파되지 말아야 한다.
필드 요약
제한자, 자료형 | 식별자, 설명 |
---|---|
static int |
SPECIAL
미디파일에서 쓰이는 특수시스템독점을 나타내는 상태바이트 (0xF7, or 247) |
static int |
SYSTEM
시스템독점메시지를 나타내는 상태바이트 (0xF0, or 240) |
javax |
---|
data, length |
생성자 요약
제한자, 자료형 | 식별자, 설명 |
---|---|
- |
SysexMessage()
새 SysexMessage를 생성. |
protected |
SysexMessage(
새 SysexMessage를 생성. |
- |
SysexMessage(
새 SysexMessage를 생성 후 메시지 데이터 설정. |
- |
SysexMessage(
새 SysexMessage를 생성 후 메시지 데이터 설정. |
메쏘드 요약
제한자, 자료형 | 식별자, 설명 |
---|---|
Object |
clone()
내용물과 클래스가 이 오브젝트와 같은 오브젝트를 새로 생성. |
byte[] |
getData()
시스템독점메시지의 데이터의 복사본을 얻기. |
void |
setMessage(
시스템독점메시지의 데이터를 설정. |
void |
setMessage(
시스템독점메시지의 데이터를 설정. |
javax |
---|
getLength, getMessage, getStatus |
java |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |