Roland GS/SysEx

최근 수정 시각 : 2022-10-06 23:24:15


목차

1. 개요
2. SysEx에 대해
2.1. 직접 해보기
3. Sound Canvas의 SysEx
3.1. 기본 구조
3.2. 체크섬 계산 방법
4. 기본 기능
5. 심화
6. 인서션 이펙트(EFX)

1. 개요

GS 포맷의 SysEx 사용 방법을 기재합니다.

※ 이 문서는 16진수를 적극적으로 다룹니다. 문서 이해를 위해서는 관련 지식이 있어야 합니다.
※ SC-8850을 기준으로 합니다. 일부 다른 내용이 있을 수 있습니다.

2. SysEx에 대해

MIDI System Exclusive Message

SysEx는 MIDI 규격 메시지 중 하나로 장치 간의 데이터 송수신에 사용됩니다.
데이터의 규격은 제조사, 기기에 따라 다릅니다.
F0DATAF7


SysEx는 F0으로 시작하고, F7로 끝납니다. 중간에는 데이터 자체가 들어갑니다.
기기에 따라 다를 수 있으나, 데이터 내의 바이트는 7Fh를 넘지 않는 경우가 일반적입니다.
범위가 00h ~ 7Fh라는 점에서 ASCII 코드와 공통점을 갖습니다.

2.1. 직접 해보기

F04110421240007F0041F7


이 메시지는 GS Reset SysEx로, 임의의 악기가 설정되어 있는 상태에서 해당 메시지를 보내면 모두 Piano 1(PC 1, MSB 0, LSB 0)로 초기화됩니다.
SC-8820과 같은 디스플레이가 없는 모델에서는 1번 채널의 악기를 임의로 바꾼 다음 불륨 버튼을 눌러보며 시도하시면 됩니다.

3. Sound Canvas의 SysEx

3.1. 기본 구조

1234567891011
F041104212400130030CF7


위는 예시 SysEx로, 리버브 매크로를 Hall 1으로 바꾸는 메시지입니다.

각 바이트는 아래와 같은 속성을 가집니다.
번호설명
1SysEx가 시작됨을 표시하는 인디케이터 바이트입니다.
2제조사 ID, Roland이므로 41h입니다.
3기기 ID, 보통 10h입니다.
4모델 ID, 보통 42h이며, LCD를 제어하는 경우 45h입니다.
5커맨드 ID, 송신하는 경우 12h(DT1), 수신을 요청하는 경우 11h(RQ1)입니다.
6~8어드레스, 조작할 설정 데이터의 위치를 의미합니다.
9데이터, 조작할 설정 값을 가집니다. EFX 매크로 지정 등의 상황에서는 데이터가 2바이트 또는 그 이상일 수 있습니다.
10체크섬, 계산 방법은 후술합니다.
11SysEx가 끝남을 표시하는 인디케이터 바이트(EOX)입니다.

3.2. 체크섬 계산 방법

연결 환경에 따라 다르겠지만, 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))

4. 기본 기능

5. 심화

6. 인서션 이펙트(EFX)

※ SC-88Pro (LSB 3) 부터 지원됩니다.
자세한 사항은 문서를 참조해 주세요.
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에 따라 사용할 수 있습니다.