나머지/midiSpec

미디 1.0 상세명세 / 데이터 형식 (메시지)

일단은생각해놓은닉넴이없음 2020. 3. 3. 14:23

데이터 형식

상태바이트 하나와 뒤따르는 하나 내지 두 데이터바이트로 구성된 여러 바이트짜리 "메시지"를 통해 미디 통신은 달성된다. 실시간 및 독점 메시지는 예외이다. ※메타메시지는 미디메시지가 아니다.

미디를 장착한 악기에는 통상적으로 수신기(receiver, 받개)와 송신기(transmitter, 보내개)가 포함된다. 수신기와 송신기 중 하나만 있는 악기도 간혹 있다. 수신기는 미디 형식의 메시지를 받아서 미디명령을 수행한다. 이는 `opto-isolator 하나와 `Universal Asynchronous Receiver/Transmitter (UART), 원하는 기능을 수행하는 데 필요한 기타 하드웨어로 구성된다. 송신기는 미디형식의 메시지를 발생시키고 UART와 `line driver의 방식으로 송신한다.

미디 호환 장비를 쓰는 유저는 미디를 쓰면 음악 시스템에서 악기 수를 확장하기와 바뀐 요구사항을 만족하려고 시스템 구성을 바꾸기가 가능하다.

미디메시지는 다양한 `performance information에 쓰이는 열여섯 채널중 어느 채널을 통해서도 전송된다. ★미디메시지의 주요 유형 다섯 가지: 채널보이스, 채널모드, 시스템공통, 시스템실시간, 시스템독점.

미디이벤트는 메시지로서 전송되며 하나 이상의 바이트로 구성된다. 미디데이터의 분류와 구조를 보여주는 도표가 아래에 있다.

미디바이트의 종류

  • 바이트
    • 상태바이트(0x80 ~ 0xFF 사이 값을 씀)
    • 데이터바이트(0x00 ~ 0x7F사이 값을 씀)

※즉 상태바이트는 1으로 시작하고 데이터바이트는 0으로 시작함

미디메시지의 종류

  • 메시지 유형
    • 채널메시지
      • 채널보이스메시지
      • 채널모드메시지
    • 시스템메시지
      • 시스템독점메시지
      • 시스템공통메시지
      • 시스템실시간메시지

메시지 한 개의 구조

  • 상태
  • 상태
    -
    데이터 바이트
  • 상태
    -
    데이터 바이트
    -
    데이터 바이트

시스템독점메시지의 구조

  • 상태
    -
    데이터 바이트
    -
    EOX(End of exclusive)