사용자 설명서

MIDI 구문

OnSong는 MIDI 명령을 표현하기 위해 텍스트 기반 구문을 사용합니다. 메타데이터 편집기에서 MIDI 이벤트를 사용할 수 있지만, 텍스트로 MIDI 명령을 표현할 수도 있습니다.

구분 값

우선, 여러 MIDI 명령은 다양한 문자로 구분할 수 있습니다: 탭 문자, 쉼표, 세미콜론, 수직 파이프 또는 새 줄. 쉼표가 가장 일반적인 구분자입니다. 예를 들어:

1.2:0@0, PC1.2:3@0, N67@1, START, SS8

채널

각 항목은 @ 기호를 포함할 수 있습니다. 기호 뒤의 숫자 값은 명령이 전송될 채널입니다. MIDI의 채널은 0부터 시작하므로 채널 1은 0(0), 채널 2는 1(1) 등입니다.

@ 기호를 사용하지 않으면 명령은 모든 채널에서 전송 또는 수신됩니다.

접두사

목록의 각 항목에는 접두사가 포함되어 있습니다. 이 접두사는 전송할 MIDI 명령의 유형을 결정합니다. 이들은 다음을 포함합니다:

  • PC 또는 접두사 없음은 프로그램 변경 이벤트입니다.
  • N은 노트 이벤트입니다
  • CC는 컨트롤 변경 이벤트입니다.
  • SS는 송 선택 이벤트입니다.
  • START는 시작 명령입니다.
  • STOP은 중지 명령입니다.
  • CONTINUE는 계속 명령입니다.
  • F0는 SysEx 메시지 앞에 붙습니다.
  • WAIT는 지연을 구현합니다.

명령의 값은 @ 기호 바로 앞에 나타나거나 @ 기호가 지정되지 않은 경우 항목의 끝에 나타납니다. 이는 접두사에 따라 프로그램 변경, 컨트롤 변경, 노트 또는 송 선택의 값입니다. SysEx 항목의 경우, SysEx의 16진수 값이 모든 SysEx 명령의 헤더로 사용되는 F0 접두사 바로 뒤에 제공됩니다.

부값

경우에 따라 추가 정보가 MIDI 명령에 부값으로 전달됩니다. 예를 들어, MSB 및 LSB, 그리고 컨트롤 값의 속도를 이러한 방식으로 보낼 수 있습니다. 이는 값 부분에 콜론을 추가하여 표현됩니다. 부값은 전송된 MIDI 명령의 유형에 따라 다른 컨텍스트를 가집니다:

  • 프로그램 변경은 프로그램 변경의 MSB/LSB에 맞춘 부값을 가집니다. 이러한 값은 마침표로 구분되며 MSB가 왼쪽에, LSB가 오른쪽에 있습니다.
  • 컨트롤 변경은 이를 사용하여 설정된 컨트롤의 값을 가집니다. 숫자는 0에서 127 사이일 수 있습니다. 생략되면 127의 값이 유추됩니다.
  • 노트 이벤트는 노트를 재생해야 하는 속도와 관련된 부값을 가집니다. 이는 0에서 127 사이의 숫자 값으로 설정할 수 있습니다.

예제

간단한 프로그램 변경부터 시작하겠습니다. 이 시나리오에서는 채널 1에서 MSB 4와 LSB 2도 전송하는 프로그램 변경 8을 사용합니다. 예제는 이것의 가장 복잡한 변형으로 시작하여 더 광범위하게 하기 위해 뱅크 선택과 채널을 제거합니다:

PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7

컨트롤 변경은 비슷하지만 구문의 왼쪽은 컨트롤 변경 번호이고 오른쪽은 선택적 값입니다. 값이 제공되지 않으면 127이 대신 전송됩니다. 채널 3에서 컨트롤 변경 106을 값 64로 전송합니다.

CC105:63@2, CC105:63. CC105@2, CC105

이제 노트 이벤트를 살펴보겠습니다. OnSong이 MIDI C0을 MIDI 노트 스케일에서 0으로 계산하기 시작하므로 채널 8에서 75% 속도로 C4를 재생하려면 다음을 입력합니다:

N60:95@7, N60@7, N60:95, N60

다시 한 번, MIDI 구문에서 값이 제거됨에 따라 MIDI 문이 더 광범위해지고 덜 구체적이 된다는 것을 기억하는 것이 중요합니다. 예를 들어, 노트 이벤트의 마지막 버전은 모든 채널에서 100% 속도로 C4를 전송합니다.

다른 MIDI 이벤트 사이에 지연을 구현하려면 MNTRNSL_0 명령과 숫자를 사용합니다. 숫자는 정수 값일 수 있습니다. 대기 시간을 1-10초로 정의하거나 밀리초로 정의할 수 있습니다. 다음은 2초, 10초 및 0.5초를 기다리는 방법을 보여줍니다.

WAIT2, WAIT10, WAIT500
OnSong 2026 — 마지막 업데이트: January 17, 2018