$$ \definecolor{rr}{rgb}{0.95,0.1,0} \definecolor{bb}{rgb}{0,0.4,1} \definecolor{gg}{rgb}{0,0.6,0} \definecolor{yy}{rgb}{0.8,0.5,0} \definecolor{pp}{rgb}{0.9,0,0.5} $$
내성적 물망초
: 내 성적 물리 때문에 망하기 10초 전

SysexMessage 클래스

~카테고리:
java/midi
패키지: javax.sound.midi
java.lang.Object
javax.sound.midi.MidiMessage
javax.sound.midi.SysexMessage
모두 구현된 인터페이스:
Cloneable

public class SysexMessage extends MidiMessage

SysexMessage 오브젝트는 미디 시스템독점메시지(MIDI system exclusive message)를 나타낸다.

미디파일에서 읽힌 시스템독점메시지엔 반드시 정의된 길이가 있다. 미디파일의 시스템독점메시지의 데이터는 SysexMessage의 데이터 배열에 다음과 같이 저장되어야 한다: 시스템독점메시지 상태바이트 (0xF0 또는 0xF7), 모든 메시지 데이터바이트, 마지막으로, 독점종료 플래그 (0xF7). 상태바이트 1바이트와 독점종료 플래그 1바이트. 따라서 2바이트를 시스템독점데이터의 길이에 더한 것이 SysexMessage 오브젝트가 알려주는 길이이다.

표준미디파일 명세가 이르는 바와 같이, 미디파일에서 읽힌 SysexMessage에는 두 가지 상태바이트 값이 허용된다.

  • 0xF0: 시스템 독점 메시지 (MIDI wire protocol에서와 같다.)
  • 0xF7: 특수 시스템 독점 메시지

MIDI 와이어 프로토콜로써 수신하는 시스템독점 데이터 처리에 Java Sound를 쓰는 경우, SysexMessage 한 개 이상에 데이터를 배치해야 한다. 이 경우, 시스템독점데이터의 길이를 미리 알 수는 없고, MIDI wire 바이트스트림에서 시스템독점데이터의 끝은 end-of-exclusive 플래그(0xF7)로 표시된다.

  • 0xF0: 시스템 독점 메시지 (MIDI wire protocol에서와 같다.)
  • 0xF7: 독점끝(EOX)

특정 시스템독점메시지의 데이터를 담고있는 첫 SysexMessage 오브젝트는 상태값 0xF0를 가져야한다. 이 메시지는 메시지를 위한 시스템독점데이터를 전부 담고있는 경우, 상태바이트 0xF7 (EOX)로 끝나야 한다. 그렇지 않으면 상태값이 0xF7인 SysexMessage 하나 이상에 시스템독점데이터가 추가적으로 보내져야 한다. 시스템독점메시지의 마지막 데이터를 담은 SysexMessage가 값 0xF7 (EOX)으로 끝나야 시스템독점메시지의 끝이 표시되는 것이다.

SysexMessage 오브젝트에서 온 시스템독점데이터가 MIDI wire protocol을 통해 전송되고 있을 때 시스템독점데이터 그 자체인 첫 상태바이트 0xF0와 막바이트 0xF7 (EOX)만이 전파돼야 하며, 지속되는 시스템독점데이터가 SysexMessage에 담겼음을 나타낼 때 쓰이는 상태바이트 0xF7는 MIDI wire protocol를 통해 전파되지 말아야 한다.

필드 요약

필드
제한자, 자료형 식별자, 설명
static int SPECIAL_SYSTEM_EXCLUSIVE 미디파일에서 쓰이는 특수시스템독점을 나타내는 상태바이트 (0xF7, or 247)
static int SYSTEM_EXCLUSIVE 시스템독점메시지를 나타내는 상태바이트 (0xF0, or 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
java.lang.Object에서 상속받은 메쏘드
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
https://docs.oracle.com/javase/7/docs/api/javax/sound/midi/SysexMessage.html