$$ \definecolor{rr}{rgb}{0.95,0.1,0} \definecolor{bb}{rgb}{0,0.4,1} \definecolor{gg}{rgb}{0,0.6,0} \definecolor{yy}{rgb}{0.8,0.5,0} \definecolor{pp}{rgb}{0.9,0,0.5} $$
내성적 물망초
: 내 성적 물리 때문에 망하기 10초 전

미디 1.0 상세명세 / 채널 보이스 메시지

~카테고리:
나머지/midiSpec

채널 보이스 메시지(Channel Voice Message)

음표 끄기0x8n(0~119)
음표 켜기0x9n
`Poly Key Pressure0xAn
컨트롤바꾸기0xBn
프로그램바꾸기0xCn
`Channel Pressure0xDn
피치밴드0xEn
※이 표 뭔뜻인지 알려줄 천사 구함. 2렬은 대충 상태바이튼데…. 3렬은 도덕책???

미디 악기 사이에 전송되는 정보는 대부분 채널 보이스 메시지이다. 이 메시지는 음표 켜기, 음표 끄기, 프로그램 바꾸기, 피치 휠 바꾸기, `after-touch pressure, 컨트롤러 바꾸기를 모두 포함한다. 이 용어들은 아래에서 정의되었다.

음표켜기메시지 하나는 3바이트로 구성되며 전송에 960마이크로초(천분의 0.96초)가 필요하다. 음표들이 동시에 많이 재생될 때 여러 음표켜기메시지는 전송에 몇 천분초가 걸릴 수도 있다. ` This can make it difficult for MIDI to respond to a large number of simultaneous events without some slight audible delay. This problem can be relieved to some degree by using the Running Status mode described on page 5 and in the appendix (A1-3).

보이스 메시지의 종류

  • 음표 켜기

    키가 눌려서 보내진 메시지 또는 다른 장치가 보낸 메시지.

  • 음표 끄기

    키가 떼어져 보내진 메시지

  • 컨트롤 바꾸기

    키 말고 컨트롤러(페달, 휠, 레버, 스위치 등)가 음표의 소리를 바꾸려고(모듈레이션, `sustain 등 도입) 움직였을 때 보내는 메시지. (`such as attack time, `filter cut off frequency, 등) 톤(보이스)의 매개변수를 전송하는 데에 컨트롤바꾸기는 쓰이지 않는다.

  • 프로그램 바꾸기

    `When a "프로그램" (i.e. sound, voice, tone, preset or patch) is changed, the number corresponding to the newly selected 프로그램 is transmitted.

  • 애프터터치

    `This message typically is sent by key after-pressure and is used to modify the note being played. After touch messages can be sent as Polyphonic Key Pressure or Channel Pressure.

  • 피치 밴드 바꾸기

    피치를 대체하는 데 쓰이는 메시지. 분해도의 최대값은 14비트 또는 2데이터바이트이다.

보이스 메시지는 키보드 악기 전용이 아니며, 다양한 음악적 목적으로 전송될 수 있다. 예를 들어, 재래식 키보드 신디사이저가 생성해낸 음표켜기메시지가 타악기 신디사이저나 조명 컨트롤러를 작동시키는 데 쓰일 수 있다.

음표 켜기, 음표 끄기

음번호(note number)

※쉽게 말해 음높이라고 하면 똥꾸녕에 털나냐 이넘덜아!!

각 음표에는 숫자값이 할당되어, 음표켜기/끄기 메시지와 함께 전송된다. 값 60은 가온다(가온도)이다. 이것은 88음짜리 피아노식 키보드에서 가운데에 있는 도이지만 물리적으로 반드시 키보드의 중앙에 위치할 필욘 없다.

세기(velocity)

세기 바이트의 해석은 수신 악기에 따라 다르다. 일반적으로, 메시지의 수치가 클 수록 세기제어 효과가 커진다. 예컨데 세기가 음량(출력 레벨)에 적용되면, 높은 세기값은 소리가 큰 음표를 생성한다. 값 64(=0x40)은 메조포르테(약간세게)에 해당하며 세기 조절이 없는 장치에서 쓰일 값이다. 세기가 음량에 적용될 경우 대응관계는 지수함수인 것이 바람직하다(※진챠…?). 이는 기본적으로 제안되는 동작이고, 악기에는 미디 세기를 제 내부의 세기 반응으로 짝짓는 표가 있을 수도 있음을 알라.

음표 끄기

미디는 음표(보이스)를 끄는 동등한 수단을 대충 두 가지 제공한다. ★같은 채널 같은 음높이의 음표끄기메시지를 보내도 꺼지고, ★같은 채널 같은 음높이의 음표켜기메시지를 세기값 0으로 해서 보내도 꺼진다. 진행중상태를 이용할 때, "세기 0으로 음표켜기"를 쓰면 상태바이트를 더 안 보내도 되는 이득이 있다.

이런 경제성 때문에, 세기가 0인 음표켜기메시지를 보내는 것이 가장 널리 쓰이는 방법이다. 하지만, "세기 끄기" 바이트와 동반되는 음표끄기 코드(0x8N)가 쓰이는데 떼기(release) 세기를 구현하는 키보드 악기도 있다. 수신기는 음표를 끄는 두 방법을 필히 인식할 수 있어야 하며 둘을 똑같이 취급해야 한다.

`The three methods of using Note-On (9nH) or Note-Off (8nH) are as follows:

  1. `For a keyboard which does not implement Velocity, the note will be turned on using 9n, kkkkkkk, 64 (40H) and may be turned off using 9n, 0kkkkkkk, 00000000 or 8n, 0kkkkkkk, 0xxxxxxx (a value of 64 [40H] is used for x).
  2. `For a keyboard which incorporates Key On Velocity, but not Release Velocity the note is turned on using 9n 0kkkkkkk, 0vvvvvvv and may be turned off using 9n, 0kkkkkkk, 00000000 or 8n, 0kkkkkkk, 0xxxxxxx (a value of 64 (40H) is recommended for x).
  3. `Where the keyboard implements both Key On Velocity and Release Velocity, a note is turned on using 9n 0kkkkkkk, 0vvvvvvv, and turned off using 8n, 0kkkkkkk, 0vvvvvvv.

컨트롤 바꾸기

`※아몰랑 넘 길어 이거~ 나중에 하든지 말든지

프로그램 바꾸기

미디 기기에서 소리를 바꿀 때 이 메시지로 프로그램 또는 "패치" 번호를 전송한다. 이 메시지는 선택된 톤의 소리 매개변수에 대한 어떤 정보도 포함하지 않는다. 프로그램을 구성하는 다양한 매개변수가 미디 기기마다 다르므로 내부 번호만으로 소리를 `정하는address 게 훨씬 더 효율적이다.

악기의 새 소리를 물리적으로 선택할 때 가장 자주 보내지는 메시지는 프로그램바꾸기메시지이다. 그러나 자체적으로 소리를 만들지 않는 기기라면, 버튼이나 다른 물리적 컨트롤러를 써서 `슬레이브 장치로 프로그램바꾸기메시지를 보낼 수 있다.

수신 기기와 송신 기기에 똑같은 톤이 있는 경우가 많지 않으므로 주어진 톤번호에 톤을 할당할 시 주의를 요한다. 주어진 프로그램 바꾸기 번호에 프로그램을 재할당하는 기능은 악기의 기능의 일부여야 한다. 내부 패치에 8진수로 번호를 매기는 악기도 있다. 이는 패치 바꾸기에 쓰인 숫자에는 효과가 없어야 한다. 번호는 0x00부터 순차적으로 매겨져야 한다. 예를 들어 8진수 11은 0x00, 8진수 12는 0x01가 되는 등.

송신 기기에서 톤이 바꾸었다고 수신 기기에서 프로그램이 바뀌는 게 꼭 바람직하지만은 않다. Some means of disabling the sending or reception of program change should be provided. program change messages do not necessarily need to change tones. In some instruments, such as a drum machine, the message may be used to switch to a different rhythmic pattern. In MIDI controlled effects devices, the program change message may be used to select a different preset effect.

p

피치 밴드 바꾸기

이 기능은 특수 목적의 피티 바꾸기 컨트롤러이며, 메시지는 항상 14비트(2바이트) 분해도로 보내진다. 최상위비트 또는 최하위비트를 보내는 다른 미디 기능들과는 달리 피치벤더 메시지는 항상 두 데이터바이트와 함께 전송된다. 이는 피치 변화에 특히 민감한 인간 청력을 고려한다. 선두의 상태바이트도 전송되면 피치밴드메시지는 3바이트로 구성된다. `The maximum negative swing is achieved with data byte values of 00, 00. 가운데(무효과)는 데이터바이트 00, 64 (0x00, 0x40)로 달성된다. The center (no effect) position is achieved with data byte values of 00, 64 (00H, 40H). The maximum positive swing is achieved with data byte values of 127, 127 (7FH, 7FH).

`Sensitivity of Pitch Bend Change is selected in the receiver. It can also be set by the receiver or transmitted via Registered Parameter number 00 00.

Bank Select 라는 거를 같이 보면 좋다`는데 그게 뭐냐

애프터터치

애프터터치엔 두 종류가 가능하다. ★전체 미디채널에 영향주는 것과 ★연주되는 각개 음표에 영향주는 것. 이 둘은 상태바이트로써 구별된다. 애프터터치 값은 키의 수평적 움직임(앞~뒤, 왼쪽~오른쪽) 또는 바닥에 닿은 키를 누름으로써 결정된다. `윈드컨트롤러 같은 장치는 최초의 `attack 이후에 증가한 숨 압력으로부터 애프터터치 메시지를 보낼 수 있다. 애프터터치로 만들어진 톤 수정 유형은 리시버가 결정한다. Aftertouch may be assigned to affect volume, timbre, vibrato, etc.

`If a "Channel Pressure" (Dn, 0vvvvvvv) message is sent, then the Aftertouch will affect all notes playing in that channel.

If a "Polyphonic Key Pressure" (An, 0kkkkkkk, 0vvvvvvv) message is sent discrete Aftertouch is applied to each note (0kkkkkkk) individually.