본문
MIDI-OX로 미디(MIDI) 신호 분석하기
[그림 1] MIDI-OX에서 MIDI Input을 읽어오는 화면
지난 게시물(MIDI의 컨트롤러 메시지(Controller Message)에 대하여)에 이어서 실제적인 값을 보고 이를 분석하기위해 글을 작성한다. MIDI 입력신호를 분석하는 툴로 MIDI-OX를 사용할 수 있다, 인터페이스가 그렇게 맘에들진 않지만 어짜피 입력신호만 확인하는 목적으로 사용하므로 괜찮다. 생긴건 매우 오래전에 만들어진 프로그램처럼 보이지만 윈도우 7에서도 잘 작동한다. (가끔씩 메모리가 부족하다는 오류를 출력하지만 지금 컴퓨터 상태가 매우 안좋기 떄문에 그런것으로 추측한다)
MIDI-OX 윈도우 설치 파일을 이곳(현재 MIDI-OX 7.0.2가 최신버전)에서 다운받고 실행시킨다. Options -> MIDI Devices에서 MIDI Inputs 에 있는 항목에서 자신이 확인하기 원하는 기기를 클릭하면 Port Map Objects에 등록이 된다. 그 후 OK를 누르면 Opened MIDI Input이라는 화면이 출력되며 신호를 읽을 준비가 된다. 신호는 위 그림과 같이 읽혀진다.
미디 신호 분석에 있어 필요한 부분은 다 필요없고 STATUS, DATA1, DATA2 부분이다. 이 게시물에서는 중간부분에 위치한 90 4D 7F와 B0 19 7F라는 값에 대해 알아본다. 우선 아래의 그림을 참고하면 편하다. 또한 그림에서 알아둘것은 Status byte가 두개의 Nibble(4bit 단위)으로 나뉘어져서 한쪽은 메시지의 타입, 한쪽은 미디 채널을 나타낸다는 것이다.
[그림 2] MIDI 메시지/명령은 다음과 같이 분리될 수 있다. (출처 : Planet Of Tunes - MIDI status & data bytes)
그리고 Status byte에 대한 정보를 보고싶다면 이 페이지(MIDI - status codes)를 참고할 수 있다. 어짜피 Status byte의 두번째 nibble은 채널을 나타내는데 1채널으로만 배정된다고 가정하면, status byte에서 볼 것은 첫번째 nibble이다. 이에 대해서는 미디 공식 사이트의 이페이지(MIDI Message Table 1)에서 쉽게 확인할 수 있다.
그럼 90 4D 7F가 어떤것을 의미하는지 보자, 90은 1번 채널에서 Note On(건반 눌림)이 발생되었다는것, 4D는 10진수로 77, 즉 77번째 건반이 눌러졌다는것, 7F는 10진수로 127, 즉 0~127의 범위를 갖는 수준에서 가장 세게 눌렸다는 의미이다. 지난 게시물에서 언급했다시피 버튼형에서는 127이 ON을 의미하는것이므로 77번 버튼이 눌렸다고 정리할 수 있다.
다음 신호인 B0 19 7F에 대해 살펴본다. B0은 Control/Mode 변화가 발생했다는것을 의미한다. 컨트롤 변화 이벤트에 대해서는 이 페이지(MIDI - control and mode changes)를 참고한다. 위에서 언급했던 페이지(MIDI - status codes)와 함께 열어두면 분석이 편하다. 아무튼 19는 25번째 연속적인 컨트롤러(Continuous controller #25)를 나타내며, 7F는 위와 같이 컨트롤러에 127라는 값이 들어갔다는 의미이다.
그럼 어떤 경우에 위와 같은 신호가 발생한걸까? 위 신호는 턴테이블을 잡은 상태에서 시계반대방향으로 천천히 돌렸을때에 발생한 이벤트이다. 턴테이블에 손이 닿았을때 Note ON 이벤트(90 4D 7F)가 발생하고 시계반대방향으로 돌렸을때 또다른 이벤트(B0 19 7F)가 발생하였다. 턴테이블을 시계방향으로 돌렸을때는 B0 19 01과 같은 값으로 출력된다. 즉 0을 기준으로 속도만큼 시계방향은 +, 반대방향은 -을 더해주는 형태다.
지난 게시물(MIDI의 컨트롤러 메시지(Controller Message)에 대하여)에 이어서 실제적인 값을 보고 이를 분석하기위해 글을 작성한다. MIDI 입력신호를 분석하는 툴로 MIDI-OX를 사용할 수 있다, 인터페이스가 그렇게 맘에들진 않지만 어짜피 입력신호만 확인하는 목적으로 사용하므로 괜찮다. 생긴건 매우 오래전에 만들어진 프로그램처럼 보이지만 윈도우 7에서도 잘 작동한다. (가끔씩 메모리가 부족하다는 오류를 출력하지만 지금 컴퓨터 상태가 매우 안좋기 떄문에 그런것으로 추측한다)
MIDI-OX 윈도우 설치 파일을 이곳(현재 MIDI-OX 7.0.2가 최신버전)에서 다운받고 실행시킨다. Options -> MIDI Devices에서 MIDI Inputs 에 있는 항목에서 자신이 확인하기 원하는 기기를 클릭하면 Port Map Objects에 등록이 된다. 그 후 OK를 누르면 Opened MIDI Input이라는 화면이 출력되며 신호를 읽을 준비가 된다. 신호는 위 그림과 같이 읽혀진다.
미디 신호 분석에 있어 필요한 부분은 다 필요없고 STATUS, DATA1, DATA2 부분이다. 이 게시물에서는 중간부분에 위치한 90 4D 7F와 B0 19 7F라는 값에 대해 알아본다. 우선 아래의 그림을 참고하면 편하다. 또한 그림에서 알아둘것은 Status byte가 두개의 Nibble(4bit 단위)으로 나뉘어져서 한쪽은 메시지의 타입, 한쪽은 미디 채널을 나타낸다는 것이다.
[그림 2] MIDI 메시지/명령은 다음과 같이 분리될 수 있다. (출처 : Planet Of Tunes - MIDI status & data bytes)
그리고 Status byte에 대한 정보를 보고싶다면 이 페이지(MIDI - status codes)를 참고할 수 있다. 어짜피 Status byte의 두번째 nibble은 채널을 나타내는데 1채널으로만 배정된다고 가정하면, status byte에서 볼 것은 첫번째 nibble이다. 이에 대해서는 미디 공식 사이트의 이페이지(MIDI Message Table 1)에서 쉽게 확인할 수 있다.
그럼 90 4D 7F가 어떤것을 의미하는지 보자, 90은 1번 채널에서 Note On(건반 눌림)이 발생되었다는것, 4D는 10진수로 77, 즉 77번째 건반이 눌러졌다는것, 7F는 10진수로 127, 즉 0~127의 범위를 갖는 수준에서 가장 세게 눌렸다는 의미이다. 지난 게시물에서 언급했다시피 버튼형에서는 127이 ON을 의미하는것이므로 77번 버튼이 눌렸다고 정리할 수 있다.
다음 신호인 B0 19 7F에 대해 살펴본다. B0은 Control/Mode 변화가 발생했다는것을 의미한다. 컨트롤 변화 이벤트에 대해서는 이 페이지(MIDI - control and mode changes)를 참고한다. 위에서 언급했던 페이지(MIDI - status codes)와 함께 열어두면 분석이 편하다. 아무튼 19는 25번째 연속적인 컨트롤러(Continuous controller #25)를 나타내며, 7F는 위와 같이 컨트롤러에 127라는 값이 들어갔다는 의미이다.
그럼 어떤 경우에 위와 같은 신호가 발생한걸까? 위 신호는 턴테이블을 잡은 상태에서 시계반대방향으로 천천히 돌렸을때에 발생한 이벤트이다. 턴테이블에 손이 닿았을때 Note ON 이벤트(90 4D 7F)가 발생하고 시계반대방향으로 돌렸을때 또다른 이벤트(B0 19 7F)가 발생하였다. 턴테이블을 시계방향으로 돌렸을때는 B0 19 01과 같은 값으로 출력된다. 즉 0을 기준으로 속도만큼 시계방향은 +, 반대방향은 -을 더해주는 형태다.
댓글