미디 컨트롤러 정보, 컨트롤 체인지 정보, CC0부터 CC127까지 미디 컨트롤 번호와 설명, MSB와 LSB, RPN과 NRPN
컨트롤 체인지(Control Change)
컨트롤 체인지(Control Change)는 MIDI(Musical Instrument Digital Interface) 프로토콜에서 MIDI 장비들이 서로 다양한 컨트롤 신호를 주고받을 수 있게 해주는 메시지 유형입니다. 컨트롤 체인지 메시지는 MIDI 장치가 음악적 표현을 위해 다양한 파라미터를 실시간으로 조정하거나 변경할 때 사용됩니다.
컨트롤 체인지 정보
컨트롤 체인지 정보는 다음과 같은 내용을 포함할 수 있습니다:
- 컨트롤러 번호 : 각 컨트롤 체인지 메시지는 0부터 127까지의 번호를 가진 컨트롤러를 지정합니다. 이 번호는 어떤 파라미터를 조정할지 결정합니다. 예를 들어, 컨트롤러 번호 7은 채널 볼륨을 조절하는 데 사용됩니다.
- 값 : 컨트롤러에 설정할 값입니다. 이 값도 0부터 127 사이에서 변할 수 있으며, 컨트롤러에 따라 해당 파라미터의 설정치를 나타냅니다. 예를 들어, 볼륨 컨트롤러의 경우 이 값은 볼륨의 레벨을 조절합니다.
컨트롤 체인지 메시지는 다음과 같은 다양한 용도로 사용될 수 있습니다:
- 음향 조절 : 볼륨, 팬(음향의 좌우 위치 조절), 음색 조절 등
- 효과 조절 : 리버브, 코러스, 페이저 등의 음향 효과의 깊이나 강도 조절
- 성능 조절 : 모듈레이션, 서스테인 페달의 온/오프, 포르타멘토 시간 등
이러한 컨트롤 체인지 메시지를 통해 다양하고 섬세한 음악적 표현을 할 수 있습니다. MIDI 컨트롤러, 시퀀서, 신디사이저 등이 이 메시지를 사용하여 상호작용하며, 라이브 공연 또는 스튜디오 레코딩 시에 활용됩니다.
컨트롤 정보와 컨트롤 체인지 정보
- 컨트롤 정보 : 이는 일반적으로 MIDI 장치에 사용 가능한 모든 컨트롤러의 정보를 포함합니다. 이 정보는 컨트롤러의 종류, 사용 방법, 그리고 각 컨트롤러가 어떤 기능을 수행하는지에 대한 설명을 포함할 수 있습니다.
- 컨트롤 체인지 정보 : 이는 특정한 컨트롤 체인지 메시지의 세부적인 정보를 의미합니다. 예를 들어, 특정 컨트롤러 번호가 어떤 파라미터를 조정하는지, 그리고 그 값의 범위가 어떻게 설정되어 있는지 등의 정보가 이에 해당합니다.
따라서, "컨트롤 정보"가 좀 더 광범위하게 컨트롤러와 관련된 일반 정보를 포함할 수 있는 반면, "컨트롤 체인지 정보"는 MIDI 메시지와 관련된 좀 더 특정적인 세부 사항을 다룹니다. 그러나 실제 응용에서는 두 용어가 서로 교환 가능하게 사용되기도 합니다.
MSB와 LSB
MSB와 LSB는 MIDI 데이터 전송과 관련된 용어로, 각각 'Most Significant Byte'와 'Least Significant Byte'를 의미합니다. 이들은 데이터의 가장 중요한 부분과 가장 덜 중요한 부분을 나타내는 데 사용됩니다. MIDI 메시지에서는 종종 데이터를 7비트 단위로 분할하여 전송합니다. 이 때문에 더 큰 데이터 값을 전송하기 위해선 여러 바이트가 필요하며, 이 경우 MSB와 LSB를 사용합니다.
- MSB (Most Significant Byte) : 데이터의 가장 중요한 바이트로, 데이터 값의 상위 비트를 포함합니다. 이는 데이터의 큰 변화를 결정짓는 주요 정보를 담고 있습니다.
- LSB (Least Significant Byte) : 데이터의 가장 덜 중요한 바이트로, 하위 비트를 포함합니다. 이는 더 세밀한 값을 조정하는 데 사용됩니다.
예를 들어, MIDI에서 뱅크 선택(Bank Select)은 두 바이트로 구성되며, MSB가 주된 뱅크를 선택하고, LSB가 추가적인 세부 뱅크를 선택하는 데 사용됩니다. 이렇게 분리해서 사용함으로써, 더 넓은 범위의 데이터 값을 효과적으로 제어할 수 있습니다.
NRPN과 RPN
NRPN 은 "Non-Registered Parameter Number"의 약자로, MIDI 디바이스 간의 통신에서 사용되는 특정 파라미터를 조절하기 위한 메커니즘입니다. 이 시스템은 국제 표준 MIDI 명령어 집합에 포함되지 않은 사용자 정의 컨트롤을 가능하게 합니다.
NRPN 작동 방식 NRPN은 다음과 같은 네 개의 컨트롤 체인지 메시지를 사용하여 구성됩니다:
- NRPN LSB (Least Significant Byte, CC 98) : 파라미터 번호의 하위 바이트를 지정합니다.
- NRPN MSB (Most Significant Byte, CC 99) : 파라미터 번호의 상위 바이트를 지정합니다.
- Data Entry LSB (CC 38) : 파라미터 값의 하위 바이트를 설정합니다.
- Data Entry MSB (CC 6) : 파라미터 값의 상위 바이트를 설정합니다.
이 방식을 사용하면, MIDI 프로토콜 내에서 표준 파라미터보다 훨씬 더 많은 파라미터를 조절할 수 있게 됩니다. 예를 들어, 특정 신디사이저에서 고유의 사운드 파라미터를 미세 조정하거나, 복잡한 디지털 효과기에서 세부적인 설정을 제어하는 것이 가능해집니다.
NRPN과 상대되는 용어: RPN
NRPN의 상대적인 용어로는 RPN (Registered Parameter Number)이 있습니다. RPN도 마찬가지로 파라미터 번호와 값으로 구성되지만, RPN은 MIDI 규격에 이미 등록되어 있는 표준 파라미터들(예: 피치 벤드 감도, 마스터 튜닝 등)을 조절하는 데 사용됩니다.
RPN은 NRPN처럼 사용자 정의가 아니라 MIDI 사양에 명시적으로 정의된 파라미터를 조절합니다. NRPN을 사용하는 것은 MIDI를 사용하는 장비 간에 더 다양하고 풍부한 통신과 제어가 가능하도록 하여, 음악 제작과 공연에서 큰 유연성을 제공합니다.
RPN (Registered Parameter Number)은 MIDI에서 특정 파라미터를 조절하기 위한 미리 등록된 설정값을 사용하는 시스템입니다. RPN은 사전에 정의된 범위 내의 파라미터를 제어하며, 예를 들면 피치 벤드 감도 조정, 마스터 튜닝 조정 등이 있습니다.
RPN을 사용하기 위해 다음과 같은 컨트롤 체인지 메시지가 필요합니다:
- RPN LSB (Least Significant Byte, CC 100) : 파라미터 번호의 하위 바이트를 설정합니다.
- RPN MSB (Most Significant Byte, CC 101) : 파라미터 번호의 상위 바이트를 설정합니다.
- Data Entry LSB (CC 38) : 파라미터 값의 하위 바이트를 설정합니다.
- Data Entry MSB (CC 6) : 파라미터 값의 상위 바이트를 설정합니다.
RPN 설정을 완료한 후에는 일반적으로 다음의 메시지를 보내서 RPN 모드를 초기화합니다:
- 5. RPN LSB and MSB (CC 100 and CC 101) : 두 컨트롤러 모두 값을 127로 설정하여 "null" 파라미터 번호를 지정하고 RPN 모드를 끝냅니다.
이 메커니즘을 사용함으로써 MIDI 장비는 사전에 정의된 파라미터를 조정할 수 있으며, 이는 다양한 음악적 표현과 장치의 세밀한 제어를 가능하게 합니다. RPN은 NRPN에 비해 제한된 범위의 파라미터만을 다루지만, 모든 MIDI 장비에서 호환되고 일관된 방식으로 작동하는 이점이 있습니다.
Midi 컨트롤 번호 : CC0부터 CC127까지 컨트롤 번호와 설명
CC 번호 | 이름 | 기능 | 설명 |
0 | Bank Select (MSB) | 뱅크 선택 (MSB) | 음색 뱅크 선택을 위한 메시지 (MSB) - 뱅크 선택에 사용하는 컨트롤 번호: 0번(뱅크선택), 32번(맵 선택) - 값은 0~127 |
1 | Modulation Wheel (MSB) | 모듈레이션 휠 (MSB) | 모듈레이션에 사용하는 컨트롤 번호는 1번이며, 컨트롤 값은 1~127까지입니다. - 모듈레이션은 비브라토 효과를 만듭니다. |
2 | Breath Controller (MSB) | 브레스 컨트롤러 (MSB) | 브레스 컨트롤을 통한 표현력 조절 |
3 | Undefined | 정의되지 않음 | |
4 | Foot Controller (MSB) | 풋 컨트롤러 (MSB) | 발을 사용한 볼륨 또는 효과 조절 컨트롤러 |
5 | Portamento Time (MSB) | 포르타멘토 시간 (MSB) | 포르타멘토에 사용하는 컨트롤 번호는 5번과 65번입니다. 포르타멘토는 현악기를 연주할 때, 미끄러지듯 연결하여 연주하는 컨트롤 체인지 정보입니다. 0~127까지의 값으로 설정하며, 값이 적을수록 빠르게 미끄러지지만, 곡의 템포에 따라 실험을 해 본 후 사용하는 것이 바람직합니다. |
6 | Data Entry (MSB) | 데이터 입력 (MSB) | 미디 데이터의 Most Significant Byte(MSB) 값을 조절합니다. |
7 | Channel Volume (MSB) | 채널 볼륨 (MSB) | 볼륨에 사용하는 컨트롤 번호는 7번이며, 값은 0~127입니다. |
8 | Balance (MSB) | 밸런스 (MSB) | 스테레오 밸런스 조절 |
9 | Undefined | 정의되지 않음 | |
10 | Pan (MSB) | 팬 (MSB) | 채널의 팬(위치)의 좌우 값을 조절하는 컨트롤 정보이며, 값은 0~127까지입니다. 0은 '좌', 64는 중앙, 127은 '우'로 조절합니다. |
11 | Expression Controller | 익스프레션 컨트롤러 | 익스프레션이란 상대적인 볼륨값입니다. 익스프레션에 사용하는 컨트롤 번호는 11번이며, 값은 0~127입니다. 상대적인 볼륨값이안, 컨트롤 체인지 정보 7번의 볼륨 값을 최대로 하는 값을 말합니다. 예를 들어 컨트롤 체인지 정보 7번의 값이 100이고 익스프레션 최대값이 100이면, 귀에 들리는 값은 100인 것입니다. - 이는 바이올린이나 트럼펫 등의 연주시 미세한 값이나, 크레센도(점점 세게), 디크레센도(점점 여리게)등과 같은 표현에 많이 쓰입니다. |
12 | Effect Control 1 (MSB) | 이펙트 컨트롤 1 (MSB) | 이펙트 1의 조절 |
13 | Effect Control 2 (MSB) | 이펙트 컨트롤 2 (MSB) | 이펙트 2의 조절 |
14 | Undefined | 정의되지 않음 | |
15 | Undefined | 정의되지 않음 | |
16 | General Purpose Controller 1 | 일반 목적 컨트롤러 1 | 다양한 목적으로 사용 가능한 컨트롤러 |
17 | General Purpose Controller 2 | 일반 목적 컨트롤러 2 | 다양한 목적으로 사용 가능한 컨트롤러 |
18 | General Purpose Controller 3 | 일반 목적 컨트롤러 3 | 다양한 목적으로 사용 가능한 컨트롤러 |
19 | General Purpose Controller 4 | 일반 목적 컨트롤러 4 | 다양한 목적으로 사용 가능한 컨트롤러 |
20 | Undefined | 정의되지 않음 | |
21 | Undefined | 정의되지 않음 | |
22 | Undefined | 정의되지 않음 | |
23 | Undefined | 정의되지 않음 | |
24 | Undefined | 정의되지 않음 | |
25 | Undefined | 정의되지 않음 | |
26 | Undefined | 정의되지 않음 | |
27 | Undefined | 정의되지 않음 | |
28 | Undefined | 정의되지 않음 | |
29 | Undefined | 정의되지 않음 | |
30 | Undefined | 정의되지 않음 | |
31 | Undefined | 정의되지 않음 | |
32 | Bank Select (LSB) | 뱅크 선택 (LSB) | 음색 뱅크 선택을 위한 메시지 (LSB) |
33 | Modulation Wheel (LSB) | 모듈레이션 휠 (LSB) | 진동 효과 등을 조절하는 모듈레이션 휠 (LSB) |
34 | Breath Controller (LSB) | 브레스 컨트롤러 (LSB) | 브레스 컨트롤을 통한 표현력 조절을 위한 컨트롤러 (LSB) |
35 | Undefined | 정의되지 않음 | |
36 | Foot Controller (LSB) | 풋 컨트롤러 (LSB) | 풋 컨트롤러 (LSB) |
37 | Portamento Time (LSB) | 포르타멘토 시간 (LSB) | 포르타멘토 효과 시간 조절 (LSB) |
38 | Data Entry (LSB) | 데이터 입력 (LSB) | 데이터 조절을 위한 메시지 (LSB) |
39 | Channel Volume (LSB) | 채널 볼륨 (LSB) | 채널의 볼륨 조절 (LSB) |
40 | Balance (LSB) | 밸런스 (LSB) | 스테레오 밸런스 조절 (LSB) |
41 | Undefined | 정의되지 않음 | |
42 | Pan (LSB) | 팬 (LSB) | 좌우 음향의 패닝 조절 (LSB) |
43 | Expression Controller (LSB) | 익스프레션 컨트롤러 (LSB) | 음량 변화 없이 음의 강약 조절 (LSB) |
44 | Effect Control 1 (LSB) | 이펙트 컨트롤 1 (LSB) | 이펙트 1의 조절 (LSB) |
45 | Effect Control 2 (LSB) | 이펙트 컨트롤 2 (LSB) | 이펙트 2의 조절 (LSB) |
46 | Undefined | 정의되지 않음 | |
47 | Undefined | 정의되지 않음 | |
48 | Undefined | 정의되지 않음 | |
49 | Undefined | 정의되지 않음 | |
50 | Undefined | 정의되지 않음 | |
51 | Undefined | 정의되지 않음 | |
52 | Undefined | 정의되지 않음 | |
53 | Undefined | 정의되지 않음 | |
54 | Undefined | 정의되지 않음 | |
55 | Undefined | 정의되지 않음 | |
56 | Undefined | 정의되지 않음 | |
57 | Undefined | 정의되지 않음 | |
58 | Undefined | 정의되지 않음 | |
59 | Undefined | 정의되지 않음 | |
60 | Undefined | 정의되지 않음 | |
61 | Undefined | 정의되지 않음 | |
62 | Undefined | 정의되지 않음 | |
63 | Undefined | 정의되지 않음 | |
64 | Sustain Pedal (on/off) | 서스테인 페달 (온/오프) | 서스테인 페달 온, 오프를 조절합니다. on은 64~127 off는 0~63 - 컨트롤 정보 64, 66, 67번은 피아노 페달 역할을 합니다. 피아노 페달에는 3개가 있는데, 왼쪽부터 소프트 페달, 소스테누토 페달, 서스테인 페달입니다. - 서스테인 페달 : 밝고 있는 동안 소리가 계속 울리는 역할 - 소소테누토 페달: 서스테인 페달은 밟고 있는 동안 연주되는 모든 음에 영향을 주고, 소스테누토 페달은 밟았을 때 연주한 음에만 영향을 준다 |
65 | Portamento On/Off | 포르타멘토 온/오프 | 포르타멘토 기능의 켜기/끄기 |
66 | Sostenuto On/Off | 소스테누토 온/오프 | 소스테누토 기능의 켜기/끄기 on은 64~127 off는 0~63 |
67 | Soft Pedal On/Off | 소프트 페달 온/오프 | 소프트 페달 조절 (온/오프) on은 64~127 off는 0~63 |
68 | Legato Footswitch | 레가토 풋스위치 | 레가토 연주를 위한 풋스위치 |
69 | Hold 2 | 홀드 2 | 두 번째 홀드 페달 |
70 | Sound Controller 1 (default: Sound Variation) | 사운드 컨트롤러 1 (기본: 사운드 변화) | 사운드 변화를 위한 컨트롤러 |
71 | Sound Controller 2 (default: Timbre/Harmonic Intensity) | 사운드 컨트롤러 2 (기본: 음색/하모닉 강도) | 음색 및 하모닉 강도 조절을 위한 컨트롤러 |
72 | Sound Controller 3 (default: Release Time) | 사운드 컨트롤러 3 (기본: 릴리즈 시간) | 음의 릴리즈 시간 조절을 위한 컨트롤러 |
73 | Sound Controller 4 (default: Attack Time) | 사운드 컨트롤러 4 (기본: 어택 시간) | 음의 어택 시간 조절을 위한 컨트롤러 |
74 | Sound Controller 5 (default: Brightness) | 사운드 컨트롤러 5 (기본: 밝기) | 음의 밝기 조절을 위한 컨트롤러 |
75 | Sound Controller 6 | 사운드 컨트롤러 6 | 추가적인 사운드 조절을 위한 컨트롤러 |
76 | Sound Controller 7 | 사운드 컨트롤러 7 | 추가적인 사운드 조절을 위한 컨트롤러 |
77 | Sound Controller 8 | 사운드 컨트롤러 8 | 추가적인 사운드 조절을 위한 컨트롤러 |
78 | Sound Controller 9 | 사운드 컨트롤러 9 | 추가적인 사운드 조절을 위한 컨트롤러 |
79 | Sound Controller 10 | 사운드 컨트롤러 10 | 추가적인 사운드 조절을 위한 컨트롤러 |
80 | General Purpose Controller 5 | 일반 목적 컨트롤러 5 | 다양한 목적으로 사용 가능한 컨트롤러 |
81 | General Purpose Controller 6 | 일반 목적 컨트롤러 6 | 다양한 목적으로 사용 가능한 컨트롤러 |
82 | General Purpose Controller 7 | 일반 목적 컨트롤러 7 | 다양한 목적으로 사용 가능한 컨트롤러 |
83 | General Purpose Controller 8 | 일반 목적 컨트롤러 8 | 다양한 목적으로 사용 가능한 컨트롤러 |
84 | Portamento Control | 포르타멘토 컨트롤 | 컨트롤 값(0~127)에서 지정한 음으로부터 다음 노트까지 포르타멘토 효과를 만듭니다. |
85 | Undefined | 정의되지 않음 | |
86 | Undefined | 정의되지 않음 | |
87 | Undefined | 정의되지 않음 | |
88 | Undefined | 정의되지 않음 | |
89 | Undefined | 정의되지 않음 | |
90 | Undefined | 정의되지 않음 | |
91 | Reverb Send Level | 리버브 레벨 | 리버브 효과의 깊이 조절 |
92 | Tremolo Depth | 트레몰로 깊이 | 트레몰로 효과의 깊이 조절 |
93 | Chorus Send Level | 코러스 레벨 | 코러스 효과의 강도 조절 |
94 | Delay Send Level | 딜레이 레벨 | 딜레이 효과의 깊이 조절 |
95 | Phaser Level | 페이저 레벨 | 페이저 효과의 강도 조절 |
96 | Data Increment | 데이터 증가 | 데이터 항목을 증가 |
97 | Data Decrement | 데이터 감소 | 데이터 항목을 감소 |
98 | Non-Registered Parameter Number LSB | 비등록 파라미터 번호 LSB | 비등록 파라미터를 조절하기 위한 LSB |
99 | Non-Registered Parameter Number MSB | 비등록 파라미터 번호 MSB | 비등록 파라미터를 조절하기 위한 MSB |
100 | Registered Parameter Number LSB | 등록 파라미터 번호 LSB | 등록된 파라미터를 조절하기 위한 LSB |
101 | Registered Parameter Number MSB | 등록 파라미터 번호 MSB | 등록된 파라미터를 조절하기 위한 MSB |
102 | Undefined | 정의되지 않음 | |
103 | Undefined | 정의되지 않음 | |
104 | Undefined | 정의되지 않음 | |
105 | Undefined | 정의되지 않음 | |
106 | Undefined | 정의되지 않음 | |
107 | Undefined | 정의되지 않음 | |
108 | Undefined | 정의되지 않음 | |
109 | Undefined | 정의되지 않음 | |
110 | Undefined | 정의되지 않음 | |
111 | Undefined | 정의되지 않음 | |
112 | Undefined | 정의되지 않음 | |
113 | Undefined | 정의되지 않음 | |
114 | Undefined | 정의되지 않음 | |
115 | Undefined | 정의되지 않음 | |
116 | Undefined | 정의되지 않음 | |
117 | Undefined | 정의되지 않음 | |
118 | Undefined | 정의되지 않음 | |
119 | Undefined | 정의되지 않음 | |
120 | All Sound Off | 모든 소리 끄기 | 모든 소리를 즉시 끄기 |
121 | Reset All Controllers | 모든 컨트롤러 리셋 | 모든 컨트롤러 설정을 초기값으로 리셋 |
122 | Local Control On/Off | 로컬 컨트롤 온/오프 | 기기의 로컬 컨트롤 기능을 켜거나 끄기 |
123 | All Notes Off | 모든 음 끄기 | 모든 음을 끄고, 페달과 다른 지속 효과를 무시 |
124 | Omni Mode Off | 옴니 모드 끄기 | 옴니 모드를 끄고, 폴리포닉 모드로 전환 |
125 | Omni Mode On | 옴니 모드 켜기 | 모든 채널에서 메시지를 받아들이는 옴니 모드로 전환 |
126 | Mono Mode On (Poly Off) | 모노 모드 켜기 (폴리 오프) | 모노 모드로 전환, 폴리 모드를 끄고 하나의 음만 발음 |
127 | Poly Mode On | 폴리 모드 켜기 | 폴리포닉 모드로 전환, 여러 음을 동시에 발음 가능 |