MIDI 신호에서 Note OFF 신호가 오지 않고 Note ON 신호로 올 때 - Whitmem
MIDI 신호에서 Note OFF 신호가 오지 않고 Note ON 신호로 올 때
Sound Development
2023-06-09 01:00 게시 39dcaf6eb15393f66c74

0
0
76
이 페이지는 외부 공간에 무단 복제할 수 없으며 오직 있는 그대로 게시되며 부정확한 내용을 포함할 수 있습니다. 법률이 허용하는 한 가이드 라인에 맞춰 게시 내용을 인용하거나 출처로 표기할 수 있습니다.
This page is not to be distributed to external services; it is provided as is and may contain inaccuracies.
문제 배경 및 개요
MIDI 신호를 활용하여 피아노 연습 프로그램을 만들고 있던 도중 특정 마스터 키보드나 키보드 장치 디바이스에서는 Note OFF 신호를 받지 못하는 증상을 발견하였습니다.
MIDI 신호에서 피아노가 눌리거나 해제를 포착하기 위해서는 미디 Parameter 신호의 첫 바이트를 0xFF를 비트 연산한 뒤 Note ON 또는 Note OFF신호인지 확인해야 합니다. 기본적으로 기본 미디 통신 프로토콜에 언급된 NoteON의 바이트 신호는 0x90이고, NoteOFF의 바이트 신호는 0x80입니다.
따라서 기본적으로는 하나의 신호에 대해 노트가 ON인지 OFF인지 확인하기 위해서는 상기 프로세스를 거치면 해결됩니다.
그러나 피아노 장치 디바이스에 따라서는 NoteOFF신호임에도 불구하고 NoteON 신호로 수신되는 경우가 있는데, 이 경우에는 velocity 값을 별도로 확인해야 합니다. Velocity 값이 0인 경우 Note ON이더라도 Note OFF로 간주됩니다. 그렇기 때문에 ON/OFF의 신호를 단순히 status 의 byte 뿐만 아니라 velocity 의 값도 병행해서 확인하는 것이 좋습니다.
NoteON (status가 0x90이면서 velocity는 0 초과일 것)
NoteOFF (status가 0x80이거나) (status가 0x90이면서 velocity는 0)일 것
댓글 0개
댓글은 일회용 패스워드가 발급되며 사이트 이용 약관에 동의로 간주됩니다.
확인
Whitmemit 개인 일지 블로그는 개인이 운영하는 정보 공유 공간으로 사용자의 민감한 개인 정보를 직접 요구하거나 요청하지 않습니다. 기본적인 사이트 방문시 처리되는 처리 정보에 대해서는 '사이트 처리 방침'을 참고하십시오. 추가적인 기능의 제공을 위하여 쿠키 정보를 사용하고 있습니다. Whitmemit 에서 처리하는 정보는 식별 용도로 사용되며 기타 글꼴 및 폰트 라이브러리에서 쿠키 정보를 사용할 수 있습니다.
이 자료는 모두 필수 자료로 간주되며, 사이트 이용을 하거나, 탐색하는 경우 동의로 간주합니다.