Roland GS/SysEx/체크섬

최근 수정 시각 : 2022-10-07 11:59:27


연결 환경에 따라 다르겠지만, SysEx는 대개 상당히 잘 깨집니다. 그래서 잘못된 데이터가 들어오지 않도록 SysEx 데이터 끝자락에 체크섬이 존재합니다.
F041104212401A1502SUMF7


이 메시지는 11번 트랙을 드럼 파트 2로 설정하는 SysEx입니다.
여기서 SUM이 체크섬에 해당됩니다.

위의 메시지를 토대로 SUM을 계산해 보겠습니다.
  • 1. Address 값(노란색), Value 값(녹색)을 모두 더합니다.
    40h + 1Ah + 15h + 02h = 71h
  • 2. 이 값을 80h(128)로 나누어 나머지를 구합니다.
    71h % 80h = 71h
  • 3. 그 다음 80h(128)에서 뺍니다.
    80h - 71h = 0Fh
결과적으로 SUM은 0Fh가 됩니다.

Excel 또는 호환 스프레드시트 수식
=DEC2HEX(128-MOD(☆,128)) 여기서 ☆은 Address와 Value 값을 모두 더한 값입니다.


PowerShell
PS > '{0:X}' -f (128 - (☆ % 128)) 여기서 ☆은 Address와 Value 값을 모두 더한 값입니다.


Python
def get_sum(carry): ''' carry는 Address와 Value 값을 리스트로 받습니다. 예시 : [0x40, 0x01, 0x30, 0x03] 반환값은 str로 출력됩니다. ''' return hex(128 - (sum(carry) % 128))
Made by libertin at 2022


이 사이트는 일개 개인이 제작한 비영리 사이트로 Roland Corporation의 공식 사이트가 아닙니다.
검증되지 않았거나, 편향적이거나, 잘못된 내용이 있을 수 있습니다.

Roland, Sound Canvas, GS 로고는 Roland Corporation의 등록상표입니다.
MIDI, General MIDI 로고는 MIDI Manufacturers Association(MMA) 및 Japan MIDI Standards Committee(JMSC)의 등록상표입니다.
기타 모든 상표 및 저작권은 해당 업체의 자산입니다.


텍스트는 따로 명시되지 않는 한 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0에 따라 사용할 수 있습니다.