페미위키:포크 프로젝트/리브레 위키/MIDI

최근 편집: 2021년 11월 8일 (월) 13:56

Musical Instrument Digital Interface (MIDI)

1980년·1990년대에 컴퓨터로 게임을 했던 사람들한테는 실물은 거의 본 적이 없이 전설로만 알려진, PC 스피커나 AdLib과는 차원이 다른 궁극의 게임 배경음악을 들려줄 수 있는 궁극의 물건, 음대생이나 실용음악과 학생에게는 컴퓨터 음악을 하기 위해 사용하는 것으로 알려진 것이다. 그러나 진실은 다음과 같다.

MIDI는 국제 단체인 MIDI Manufacturers Association(MMA)와 일본의 사단법인 음악전자사업협회(AMEI)가 제정하고 공표한, 전자악기와 전자악기, 전자악기와 컴퓨터 사이에 연주 데이터를 전송하고 공유하기 위한 업계 표준 규격이다. 물리적인 수준의 인터페이스 회로 규격, 연주 데이터를 주고 받을 때 필요한 통신 프로토콜, 파일 형식 등 전자악기와 악기간, 전자악기와 컴퓨터가 연주 데이터와 보조 데이터를 통신하는데 필요한 모든 것에 대한 표준을 규정하고 있다.

주의할 점으로, MIDI 는 "연주 데이터와 연주 보조 데이터"를 통신하는 규격이지 "음향(사운드) 데이터"를 주고받는 표준 규격이 아니라는 것이다. 따라서 이것만 가지고는 소리가 나지 않으며, MIDI 신호를 수신하여 소리를 낼 수 있는 전자악기나 컴퓨터가 필요하다. 비유를 하자면 MIDI 는 음악을 연주할 수 있는 악보와 같은 데이터를 주고 받는 것이고, 디지털 녹음 시스템이나 DAW는 연주된 소리 그 자체를 주고 받는다.

역사

20세기에 들어서면서 전기의 활용과 함께 전자공학이 발달했고, 전자악기라는 새로운 악기가 발명되었다. 로버트 모그(Robert Moog)가 1960년대에 최초로 현대적인 신디사이저의 상업화에 성공한 이후로, 다양한 새로운 전자악기들이 등장하고 사용됐으며, 이러한 경향은 1970년대 말부터 폭발적으로 증가하기 시작했다. 이때까지 전자악기는 대부분 아날로그 신디사이저였다.

아날로그 신디사이저는 대부분 동시발음이 1개인 단음(Monophonic)에 볼트로 제어되는 것이었고, 신호의 크기와 단계 차이가 있었지만 전자악기 간에 초보적인 통신은 어떻게든 가능은 하긴 했다 (같은 제조사의 비슷한 라인업인 악기가 아니면 결코 그냥 잘 되는 수준은 아니었다). 그러나 이 방식은 동시발음이 여러 개(Polyphonic)이고 동시에 여러 다른 음색의 소리(Multi-timbral)를 낼 수 있는 디지털 신디사이저에 적합한 방식은 아니었다.

따라서 전자악기 제조사들은 저마다 독자적인 방식으로 악기간에 통신하기 위한 새로운 방법을 고안했는데, 회사마다 천차만별로 방식이 달랐기 때문에 다른 모델, 다른 회사에서 만들어진 전자악기한테는 무용지물이었고, 이 문제를 해결하기 위한 각종 신호 변환기가 잠시 등장하기도 했다.

전자악기 사이에 통신을 할 수 있는 공통 표준 규격의 필요성이 점차 대두됨에 따라, 시퀀셜 서키츠(Sequential Circuits)의 데이비드 스미스(David Smith)와 쳇 우드(Chet Wood)가 전자악기 사이에 통신을 할 수 있는, 특정 메이커에 종속되지 않은 보편적인 인터페이스 표준 규격을 고안하여 1981년 말에 Audio Engineering Society(AES)에 공개한 것이 시초이며, 이후 2년간 YAMAHA, Roland, KORG, Kawai, Moog, Oberheim, Sequential Circuits 등의 업계 메이저 회사들이 협의하고 수정되었다. MIDI의 개발은 로버트 모그에 의해 1982년 10월 Keyboard Magazine에 소개되었다. MIDI의 최초 시연은 1983년 1월 Winter NAMM Show에서 스미스에 의해 Sequential Circuits의 Prophet 600과 Roland의 JP-6를 연결하는 것으로 행해졌으며, 이렇게 제정된 MIDI 표준 1.0은 1983년 8월에 세상에 공개되었다.

이때 이후로 우리가 아는 MIDI의 역사가 시작되며, 전자악기를 사용한 음악의 판도가 말 그대로 혁명적으로 바뀌게 된다.

MIDI 가 미친 영향

MIDI는 원래 전자 악기, 특히 신디사이저 사이에 통신을 하기 위해 제정된 표준이었고, 주요 사용 대상을 대중음악에 전자악기를 사용하고 싶어하는 층으로 정했다.

그러나 MIDI가 세상에 등장한 시기는 공교롭게도 개인용 컴퓨터 붐이 일던 시기였고, 아날로그 신디사이저가 아닌 디지털 신디사이저와, 신디사이저가 아닌, 녹음한 음을 재생하는 샘플러가 이제 막 등장한 시기였다. 전자악기가 아닌 개인용 컴퓨터에 장착할 수 있는 MIDI 인터페이스가 등장했고, 샘플러와 디지털 신디사이저도 MIDI 포트를 장착하면서 표현과 창작의 가능성이 이전과 비교할 수 없을 정도로 향상된 결과, MIDI는 전 세계적으로 1980년대 음악 업계의 부흥을 이끌어오는데 일조했다. 1980년대에 한국의 전국에 있던 롤러스케이트를 탈 수 있던 로라장에서 틀어주던 팝송, 소위 로라장 음악을 지금 다시 찾아서 들어보라. 이상하게 전자악기, 신디사이저 소리가 많은 것을 바로 느낄 수 있다.

컴퓨터에 MIDI 인터페이스가 장착되고, 초기 형태의 MIDI 시퀀서가 등장하면서, 전문적인 연주 기술이 없는 사용자도 컴퓨터 키보드로 연주 데이터를 입력하거나, 마우스로 화면에 그리는 것 만으로도 작곡편곡을 할 수 있게 되었다. 그리고 인원이 1명 또는 2명인 밴드나 그룹도 MIDI를 사용해서 이전과는 다른, 훨씬 많은 인원이 무대 위에 있는 것과 같은 다양한 퍼포먼스를 무대 위에서 할 수 있게 되었다. 즉, 다음과 같은 1인 연주 공연이 가능해진 것이 바로 MIDI의 힘이다.

MIDI 등장 직전인 1970년대 말, 1980년대 초에도 MIDI가 아닌 다른 형태로 전자악기와 컴퓨터가 연주데이터를 주고받으며 작업을 할 수 있게 만든 시도가 있기는 했다. 독자적인 하드웨어를 사용하여 BASIC과 비슷한 형태의 언어를 사용하여 신디사이저를 제어하는 식이었는데, 이런 방식은 MIDI가 공개된 이후에 등장한 시퀀서와 애초에 게임이 되는 수준이 아니었다. MIDI는 말 그대로 매우 적절한 시기에 등장하여 거대한 폭풍을 일으킨 셈이다.

MIDI의 등장으로 새로운 소리가 필요한 경우 굳이 신디사이저의 건반까지 필요한 경우가 많이 줄었으며, 이에 따라 소리를 내는 음원부에 MIDI 포트만 장착된 Sound Module이라는 형태의 새로운 기기도 등장하게 되었다.

일본에서는 반주기기에 사운드모듈을 내장하고 MIDI 연주 데이터 역시 내장하여 일찍부터 가라오케에 MIDI를 적용했다. 한국은 물론 전 세계의 노래방 기계는 모두 이 일본 기계의 구조를 그대로 따라가고 있다. 2000년대 이후에 의도하지 않았던 장점이 부각되었는데, MP3 등에 비해 용량이 크지 않아서 경쟁력이 높다나?

MIDI는 휴대폰에도 채용되어 주로 벨소리를 연주하는 정보를 수록하고 이를 재생하는 데에도 사용되었다. 물론 요즘에 이런 휴대폰은 보기 힘들다.

게다가, MIDI 덕에 프로젝트성 음악 활동에 외부 세션이나 게스트를 고용하는 경우도 대거 줄었으며, 즉, 전문 연주인(세션)의 부수입, 특히 드러머베이시스트의 부수입을 없애버리는데 혁혁한 공을 세웠다.[1] 이러한 환경의 변화는 음악 생산 작업의 중심을 MIDI 작업을 하는 컴퓨터가 차지하게 만들었다. 전문 음악인도 이 시스템을 도입하여 홈 레코딩 시스템을 너도 나도 만들 정도로 인기가 대단했다. 물론 특성상 녹음 자체에 한계가 존재했지만, 이것은 이후 1990년대에 등장한 DAW에 의해 완전하게 해결된다.

MIDI를 좀 더 응용하여 무대조명장비나 무대용 특수효과 장비를 직접 MIDI 신호로 제어할 수 있는 설비도 생산되었다. 이를 응용하면 음악에 맞춰 조명이 빛나게 할 수도 있다.

용도

MIDI는 주로 전자악기 사이에 연결 또는 음악 연주와 제작에 이용된다. MIDI 규격에 따라 만들어진 데이터는 MIDI 규격을 준수하는 다른 전자악기에 바로 전송되어서 연주를 할 수 있고, MIDI 시퀀서 또는 DAW를 사용해 편집, 재생할 수 있다.

MIDI 데이터 자체는 파형을 가진 소리 정보, 오디오 데이터가 아닌, 입력한 음계와 그 강도(예: 피아노를 살짝 누르면 소리가 작게 나고 세게 누르면 소리가 크게 나는 차이)와 기타 음을 내는데 필요한 데이터를 기록하는 방식이다.

MIDI 데이터 자체로는 바로 소리를 낼 수 없지만, 연주된 음악데이터의 편집 기능이 미약한 신디사이저를 대신하여 컴퓨터를 사용해 원격에서 편집, 가공, 재생을 할 수 있다. 각종 이펙터도 MIDI신호로 제어할 수 있으며, 따라서 자연스럽게 음악작업의 중심이 MIDI 시퀀서가 동작하는 컴퓨터가 되도록 만들었다.

여기에 보다 발전된 형태로, 컴퓨터로 사용자가 연주하여 생성된 MIDI 신호를 전송한 후, 이를 실시간으로 가공, 확장하여 컴퓨터에 연결된 MIDI를 지원하는 전자악기로 실시간으로 전송하여 확장된 소리 또는 효과를 내는 형태도 존재한다. 주로 단음의 MIDI 신호가 입력되면 3도음, 4도음, 5도음 또는 미리 정해진 규칙에 따라서 화음을 더해주거나, 잘 안 쓰는 특정 음을 연주하면 미리 입력된 CC 또는 SysEx 신호, 기타 특수 효과로 확장하여 신호를 전송하거나, 입력 데이터를 분석하여 자동으로 화음에 변화를 주면서 미리 정해진 스타일에 따라 곡의 반주 패턴을 실시간으로 MIDI 신호로 변환하여 전송하는 형태 등으로 구현되어 있다.

기초 용어

  • 음색(Timbre, Voice, Patch, Program): 독립된 개별 악기로 인식할 수 있는 소리이다.
  • 포트(Port): 전자악기나 컴퓨터 사이에 연결은 물리적인 포트 단위로 이루어진다. 1포트는 최대 16개의 채널을 가진다. 보통 IN, OUT과 함께 IN으로 들어온 신호를 그대로 다시 전송하는 THRU 포트가 장착되며, 필요에 따라서 2쌍 이상의 IN, OUT 포트가 장착되는 경우도 있다.
  • 채널(Channel): 음색을 할당하는 단위가 된다. 즉 1개의 MIDI IN 포트를 가진 기기는 동시에 최대 16개의 음색을, 2개의 포트를 가진 기기는 최대 32개의 음색을 연주할 수 있다.
  • 베이스 채널(Base Channel): 컨트롤러가 같이 연결된 전자악기의 경우, 내부 컨트롤러가 사용하는 첫 번째 채널이다. 보통 1이지만, 전자악기가 구현된 형태에 따라서 건반 영역 별로 이것을 다르게 지정할 수 있는 악기도 있다.
  • 로컬 컨트롤(Local Control): 전자악기 내부에서 MIDI Controller가 만드는 신호와 음원부의 연결을 제어한다. On일 경우 연결되며, Off일 경우 연결이 끊어진다. 이는 무대에서 연주하는 상황이 아닌, 컴퓨터로 MIDI 신호를 전송하고, 이것을 실시간으로 (변환작업을 거칠 수도 있다) 다시 전자악기로 전송할 때 사용된다. 보통 MIDI 시퀀서나 DAW는 MIDI 입력을 받으면 바로 다시 MIDI OUT으로 쏘는 THRU 모드로 설정되어 있으며, 이 상황에서 내부 연결이 끊어지지 않으면, 연주를 했을 때 컨트롤러에서 내부 음원으로 전송되는 신호와, MIDI OUT 포트를 통해 컴퓨터로 전송된 후, 다시 컴퓨터에서 전자악기로 전송되는 데이터 때문에 중복으로 신호가 전달되어 연주자가 의도했던 소리가 아닌, 다른 소리가 나기 때문에 존재한다.
  • 벨로시티(Velocity): 소리의 세기이다.
  • MIDI 채널 동작 모드
    • 모노(Monophony): MIDI에서는 단음으로 연주하는 것을 말한다. 화음 신호가 들어와도 무시하고 단음으로만 연주한다. 아래의 폴리와 상반되는 개념이며, MIDI 표준이 제정될 당시의 많은 아날로그 신디사이저가 단음만 연주할 수 있는 것이었기 때문에, 화음 MIDI를 출력하는 전자악기의 신호를 이러한 단음만 연주할 수 있는 기기에서 수신할 때 사용된다. 그러나 요즘은 아날로그 신디사이저도 화음을 연주할 수 있는 것이 절대 다수이기 때문에 보통 쓸 일이 없을것 같지만, 굳이 최신기기에도꾸준히포함되는 이유가 있다. 조금 고가의 신디사이저들이나 윈드 컨트롤러등에서 활용되는 솔로연주와 그 시퀀싱을 위해 최근의 기기에도 꾸준히 모노 모드가 탑제되어있다. 모노 모드로 설정하고 임의의 건반을 누른 채 다른 건반을 누르게되면 연속해서 연주하는 것과 달리 음색의 트렌지언트가 뭉뚝해지는 현상이 일어나는데 전기 기타 솔로나 섹소폰등 관악기의 솔로 연주와 그 시퀀싱에서 진가를 발휘한다. 벤딩이나 포르타멘토 컨트롤을 이용한 부드러운 음정변화와는 별개의 소리가 나는데, 기타의 경우 풀링 오프 또는 태핑의 소리에 대응되며 관악기의 경우 부드러운 레가토 연주에 대응된다. 아날로그 신스의 모노 모드는 독특한 솔로연주를 만들수 있다. 지원하는 기기나 가상악기가 있다면 꼭 활용해보자.
    • 폴리(Polyphony): 말 그대로 화음을 연주하는 것을 말한다.
    • 옴니(Omni): On/Off로 구분된다. Omni On이 되면 일단 MIDI 신호에 지정된 채널 정보를 무시하며, 구현된 형태에 따라서 모든 채널의 데이터를 단일 채널로 들어오는 것으로 인식하여 음원의 베이스 채널로만 MIDI 데이터가 전송되어 소리를 내거나, 또는 미리 정해진 채널로 데이터를 뭉쳐서 소리를 내게 된다. 후자의 경우는 전자악기가 지원하는 채널이 16개가 안 되는 경우 이렇게 동작한다. 예를 들어 4개의 채널만 지원하면서 베이스 채널이 2로 지정된 전자악기의 경우, MIDI 신호를 수신하여 연주할 수 있는 채널은 2, 3, 4, 5 번 채널이 된다. 이 상태에서 Omni On이 되면 수신하는 신호의 1, 5, 9, 13채널은 2 채널에서, 2, 6, 10, 14 채널은 3번 채널에서, 3, 7, 11, 15는 4번 채널에서, 4, 8, 12 16은 5번 채널에서 소리를 내게 된다. Off인 경우, MIDI 신호의 채널 정보가 유효하며, 정해진 채널로 전송한다. 이 역시 단음 또는 16개의 채널을 모두 지원하지 못하는 전자악기와 16개의 채널을 지원하는 전자악기간의 통신을 하기 위해 존재한다. 바로 앞에서 예를 들었던 2, 3, 4, 5의 4개 채널을 연주할 수 있는 신디사이저에서는 이 이외의 채널로 들어오는 신호는 무시된다. 그런데 16채널을 모두 지원하는 대부분의 요즘 전자악기에서는 이거 On 하나 Off 하나 똑같잖아? MIDI 채널 모드는 조합에 따라 다음의 표와 같이 4 가지로 구분되며, 보통 전자악기를 켜면 자동으로 Mode 1인 Omni On, Poly 모드로 설정된다.
Omni Poly Mono
Omni On Mode 1 Mode 2
Omni Off Mode 3 Mode 4

규격

초기의 하드웨어와 신호 규격

MIDI 1.0 표준에 의하면 31250bps[2] 비동기 시리얼 통신을 하며, 0V 일 때 1, +5V일 때 0을 나타낸다.연결 커넥터는 5핀 DIN 커넥터를 사용하며, 케이블은 크로스 형태이다.

MIDI 포트는 크게 IN, OUT, THRU 가 있다. IN, OUT은 말 그대로 입력, 출력이며, THRU는 IN으로 들어온 신호를 그대로 다시 보내는 포트이다. 여기서 오해하면 안 되는 것이 MIDI는 절대 BUS 형태의 데이터 전송 채널이 아니며, 따라서 THRU라고 할 지언정, 일단 수신한 신호를 해독하는 과정을 거친 후, 다시 THRU로 데이터를 전송하는 식으로 구현되어 있다. 여기에, 전기적 안정성을 위해 일단 수신된 신호는 Opto-coupler를 사용하여 전기적으로 내부 회로와 분리하게 되어 있기 때문에, 지나치게 많은 단계로 THRU연결을 하면 필연적으로 딜레이가 발생하고, Opto-coupler를 사용하는 한계 때문에 드물지만 데이터 손실도 발생할 수 있다. 이러한 이유 때문에 8 IN 8 OUT 과 같은 많은 입출력을 가지는 MIDI 인터페이스는 아직도 전문 음악인들 사이에서 사용된다.

오디오 데이터를 직접 다루지 못한다는 점은 충분한 단점이지만, 이미 이 상태로 근 30년이 지났으며, 1983년 당시의 기술로서는 어쩔 수 없는 부분이 있음을 이해해야 한다. 그리고 31250 bps 의 느린 속도는 매우 복잡한 곡의 데이터를 전송하는데 걸림돌이 된다. 물론 이 부분은 USB, IEEE1394, IP Based 네트웍 등으로 물리적 전송부분이 바뀌면 일단 해결된다.

음 높이를 7비트 데이터로 표현하는 부분은 무리가 없어보이지만, Microtonalism 같은 것을 추구하게 될 경우 표현을 할 수 있는 범위가 현저하게 줄어들며, 기타 중요한 CC 값이나 Velocity가 128단계로밖에 구분이 안 된다는 것이 표준이 제정되고 공표된 지 근 30년이 지난 2012년 말의 시각에서는 결정적인 한계점이자 문제점으로 꼽을 수 있다.

그 밖의 통신 규격

위의 것은 어디까지나 1980년대에 제정된 표준이고, 초기에 당시의 컴퓨터 주변기기 통신 규격인 RS-232, RS-422 시리얼 통신규격 등을 사용하는 표준 규격이 존재하며, 신기술이 등장함에 따라 USB MIDI 표준, IEEE1394, Wireless, IP기반 네트웍 MIDI 표준이 추가되었다. 당연히, 물리적 규격은 위와 상관없이 해당 기술의 표준 규격을 사용한다.

Velocity 문제를 해결하고자, MMA에서는 기존의 Note On/Off 메시지와 함께 사용하여 음의 세기를 표현하는 Velocity를 14 bit로 확장하는 용도로 CC88을 High-Resolution Velocity Prefix로 정의하고, 여기에 Velocity 정보의 상위 7비트 데이터를 입력하도록 했지만, 단음 연주가 아닌 경우에는 별로 효용이 있을 것 같지 않다. 아직 지원하는 기기도 별로 없고...

YAMAHA에서는 한계를 극복하고자 보다 빠른 전송속도와 대역폭을 가지는 IEEE1394기반의 mLan이라는 독자 규격을 2000년에 만들었고, 오디오 데이터와 MIDI 데이터를 통합하여 전송하고, 자유롭게 라우팅할 수 있는 한 차원 높은 수준의 표준 규격을 제안하고 자사의 제품에 적용하고 확산시키려고 노력했다. 얘네도 외계인 고문 좀 할 줄 안다. 일부 타 업체에 확산도 성공은 했으나... 최종적으로 어른의 사정에 의해 흑역사가 되었다.

자유로운 신호 라우팅은 운영체제 드라이버 수준에서 이러한 기능을 했던 mLan과 달리, 응용 프로그램 수준에서 제정된 표준 ReWire로 동일한 기능을 할 수 있다.

MIDI 데이터 메시지 포멧

깊게 들어가면 길이가 너무 길어지므로, 간단하게 요약하면 다음과 같다. 혹 자세한 내용을 알고 싶은 위키러는 이 링크를 참조하라. http://www.midi.org/techspecs/midimessages.php

MIDI 데이터 메시지는 메시지 종류를 구분하는 상태/채널 바이트와 뒤이어 따라오는 1~2개의 데이터 바이트로 구성된다. 물론, 바이트이니 만큼 데이터는 최대 8비트이며, MIDI는 사실 이 중에 7 비트만 사용한다. 즉 가능한 데이터 값은 0 ~ 127이다. 필요한 경우 2바이트 14비트를 데이터로 취하여 0 ~ 16383의 파라미터를 취하는 메시지도 존재한다.

  • Note On: 음을 낸다. 음높이와 Velocity(소리 세기)를 데이터로 취한다. 속도를 의미하는 Velocity라는 단어를 사용하는 이유는 당시 압력을 감지하는 센서의 감도와 연주자가 건반을 누르는 감각을 정확히 대응 시킬 수가 없어서 건반이 최저점으로 내려오는 속도를 측정하여 세기의 기준으로 썼기때문이다. 실제 연주자의 입장에서도 대부분의 상황에서 매우 적절한 방식이었다. 최근의 디지탈 피아노는 정교한 압력 센서를 이용하는데 저가 디지탈 피아노의 경우 세기의 범위가 고가 피아노의 절반 수준인 경우도 허다하다.
  • Note Off: 말 그대로 음을 끝낸다. 음높이와 함께 특이하게도 Release Velocity를 데이터로 취하는데, 이는 건반에서 손을 떼거나, 그 밖에 MIDI 컨트롤러에서 연주를 멈추었을 때 잔향 효과를 주거나, ADSR 엔벨로프의 Release를 처리할 때 사용된다.
  • Polyphonic Aftertouch: 건반을 누른 후 좀 더 힘을 주거나 흔드는 행동을 감지하여 보내는 신호. 음높이와 함께 세기를 데이터로 취한다.
  • Control Change: 보통 MIDI에서 CC라고 언급하는 것. CC번호와 함께 추가의 데이터 바이트를 취한다. 당연히 0 ~ 127까지 128가지가 있다. 보통 공통적으로 많이 쓰는 것을 열거하면 다음과 같다. 이 외에는 악기마다 사용할 수 있는 CC가 조금씩 다르다.
    • Bank Select(0): 당연히 요즘의 신디사이저 / 음원은 128개를 한참 넘어가는 음색을 가지고 있다. 이는 128개 이하 단위의 Bank라는 단위로 구분되어 있고, 이를 선택할 때 사용한다.
    • Modulation(1): 보통 키보드에 달려 있는 휠 중 Pitch Bend와 함께 필수요소격으로 같이 있다.
    • Channel Volume(7): 말 그대로 채널 볼륨.
    • Pan(10): 채널에서 나는 소리의 좌/우 편향도를 나타낸다.
    • Expression(11): Channel Volume처럼 볼륨을 조절하는 일을 한다. CC 7과 구별되는 점은 최대의 음량이 CC 7에서 정의한 음량에 한정된다. 즉 CC 7에서 볼륨을 60으로 정의하였다면 CC 11은 60을 다시 127단계로 쪼개어 표현한다.
    • Sustain(64): Note Off가 들어와도 음을 쭈욱 유지한다. 보통 키보드에서 가장 흔히 쓰이는 페달이 이 Sustain을 제어하는 페달이다.
  • Program Change: 채널의 음색(Program, Patch)를 변경한다.
  • Pitch Bending: 14비트 값으로 0 ~ 16383 사이의 값을 취하며, 연주되고 있는 음높이를 변경할 때 사용한다.
  • System Exclusive: 보통 줄여서 SysEx라고 표기한다. MIDI 표준에 규정된 메시지 이외에, 전자악기별로 특화된 설정 또는 데이터를 전송할 때 사용하며, 주로 신디사이저의 메인 설정 또는 Patch(Program) 데이터를 주고받을 때 사용한다. 일부 전자악기는 심지어 이것으로 펌웨어 업그레이드 데이터도 전송한다.
  • MIDI Clock: 기보 형식, 즉 마디와 구절에 따른 현재 곡의 재생 상태에 대한 정보를 전송한다.
  • MIDI Time Code: SMPTE에 대응되는 신호를 MIDI로 구현한 것.

파일 형식

MIDI 음악 자체는 확장자 .mid를, 노래방용 파일은 .kar 확장자를 가진다. 거의 비슷하지만 세부 형식에서 .kar이 가사 정보를 포함하고 있어 약간 차이가 있다.

  • Standard MIDI File(SMF) 0
    모든 데이터가 한 트랙에 몰려 있는 형식. 가장 단순하나 열어보는 사람 입장에서는 고역이다. 물론 해독하기 힘들다는 특성 덕에 노래방 데이터나 벨소리 데이터가 이 형식으로 되어 있는 경우가 많으나, 현실은 그런 거 없고 최신 시퀀서는 알아서 다 채널별로 분리해준다.
  • Standard MIDI File 1
    한 채널에 한 트랙이 할당된 구조. 시퀀서별로 독자적인 파일 형식이 등장하기 전까지는 주로 이 파일 형식이 사용되었다.
  • Standard MIDI File 2
    채널에 구애받지 않는 여러 트랙이 존재할 수 있다. 즉, 같은 채널을 가지는 여러 트랙이 존재할 수 있다. 이는 한 채널에서 패치를 바꿔가면서 오르골 소리를 내다가 플룻 소리를 내는 등의 경우 등에 트랙별로 분리할 때 매우 유용하다.

MIDI 장비

컴퓨터 인터페이스

컴퓨터가 MIDI 신호를 수신하고 전송할 수 있게 해주는 장치. 초기에는 확장슬롯에 꼽는 확장카드 형태로 등장했으나, Atari ST같이 아예 본체에 내장한 경우도 일부 있었다. 그러나 USB가 대세가 되고 전자악기 자체에 컴퓨터용 USB MIDI 인터페이스가 내장되어 나오는 것이 대부분인 지금은 사용자 입장에서 사실상 유명무실해졌으나, 편의성 때문에 Wireless 인터페이스, 분산처리를 위한 네트웍을 통한 인터페이스는 중요하게 취급되고 있다.

컨트롤러

MIDI 신호를 생성하는 기기. 보통 키보드 형태이나, 키보드 말고도 매우 다양한 형태가 존재한다. 몇 가지를 나열하면 다음과 같다.

  • MIDI Keyboard Controller: 흔히 마스터 키보드라고 부르는 그것이다. 음원이 없으므로 소리는 안난다.
  • MIDI Pad Controller: AKAI Professional의 MPC류의 샘플러나 리듬머신에 달려 있는 그 패드만 있는 컨트롤러.
  • MIDI Drum/Percussion Controller: 드럼, 타악기 컨트롤러.
  • MIDI Guitar Controller: 기타 형태의 컨트롤러. 별도로 제작된 제품보다 MIDI 신호를 만드는 MIDI Pickup을 기타에 장착하는 형태로 된 것이 많다.
  • MIDI Wind Controller: 관악기 형태의 컨트롤러. 국내에서는 T-Square 덕에 알려졌다. 크게 목관악기형과 금관악기형으로 나뉜다.
  • MIDI Violin Controller: 바이올린 형태의 컨트롤러. MIDI Guitar Controller와 같이 원래 악기에 MIDI Pickup을 장착하는 형태가 많다.
  • MIDI Surface Controller: 각종 노브와 페이더가 왕창 붙은 컨트롤러. 목적은 당연히 MIDI 트랙을 제어하는 것이다.

그 밖에 정말 드물지만 하모니카, 아코디언 형태의 컨트롤러도 등장한 적이 있다.

악기

컨트롤러가 MIDI 신호를 생성하여 전송한다면, 이쪽은 주로 MIDI 신호를 수신하는 입장이다.

  • Synthesizer - 물론 건반이 달린 신디사이저는 MIDI Keyboard Controller로서도 사용할 수 있다.
    • Software Synthesizer
  • Sampler: 녹음된 소리를 재생하는 기기
  • Rhythm Machine, Drum Machine
  • Sound Module

기타 MIDI 장비

  • Hardware Sequencer
  • Effector
  • Mixing Console
  • MIDI Patch Bay: 여러 MIDI 신호를 받아서 다시 이를 설정에 따라 분배해주는 하드웨어.
  • 무대조명이나 특수효과 장비도 MIDI신호를 수신하도록 제작하여, 단순히 MIDI 파일을 재생하는 것 만으로 제어가 가능하게 한 장비가 존재한다.
  • MIDI-CV Converter: MIDI 신호를 수신하여 아날로그 신디사이저를 구동할 수 있는 Volt신호로 변환하여 출력하는 장치. 당연히 특정 아날로그 신디사이저별로 기기가 따로 존재한다. 이것을 사용하면 오래전에 생산되어 MIDI를 지원하지 않는 아날로그 신디사이저도 MIDI로 제어할 수 있다. 물론 이런 기기는 주문이 들어가면 수제작으로 만들어지며, 가격은 매우 크고 아름다운 수준이다. CV/Gate 방식에 대한 자세한 것은 아날로그 신디사이저를 참조하라.
  • MIDI Controlled Relay/Switch: MIDI 신호를 수신하면 Relay나 스위치를 작동시키는 장치. 다양한 응용이 가능하다.

확장 규격

  • General MIDI(GM)
    MIDI의 등장 이후로 서로 다른 전자악기간에 통신을 할 수 있게 된 점은 대단한 장점이었지만, 새로운 문제가 발생했다. 이쪽 악기를 기준으로 작성된 MIDI 데이터를 저쪽 악기에서 재생하면 완전히 엉뚱한 소리가 발생하는 것. 예를 들어 이쪽 악기에서 1번 패치는 피아노였는데 저쪽 악기에서는 1번 패치가 트럼펫이라든지와 같은 식이다. 따라서 패치의 소리와 최소한의 컨트롤러를 표준화하여 이 규격을 지키면 일정수준의 MIDI 데이터를 재생했을 때 호환성을 보장하는 표준 규격으로 1991년에 등장한 것이 General Midi(GM)이다.
    그러나 이것도 급증하는 음색과 다양한 악기의 기능을 소화하는 데는 충분하지 않다고 판단되어, 일부 회사별로 GM에 근거한 독자적인 표준이 다시 만들어졌고, 후에 GM 자체도 새로운 표준이 만들어졌다.
    이 규격은 상대방이 만든 MIDI 음악을 내 기기에서 재생해도 들을만한 수준의 소리가 보장된다는 점과, 1990년대 초중반 당시 잘해야 2400bps 인 일반 전화망용 느려터진 모뎀의 전송속도에 따른, 작은 용량임에도 재생하면 AdLib같은 것과는 비교가 안 되는 훌륭한 소리를 낸다는 점 때문에 전문가보다는 주로 자신들이 작성한 MIDI 파일을 공유하는 취미 동호인 사이에서 인기가 있었으며, YAMAHA같은 회사는 인기 있는 곡의 MIDI 파일을 만들어서 유료로 판매하기도 했다. 물론 YAMAHA는 잽싸게 아래에 있는 XG로 갈아탔지만, XG와 GM이 크게 다르지 않았기 때문에 XG 파일을 조금만 수정하면 대부분 문제없이 재생이 가능했다.
  • General Standard(GS): 1991년에 공개된 Roland의 독자 표준. GM과 하위 호환된다.
  • Extended General MIDI(XG): 1994년에 제정된 YAMAHA의 독자 표준. GM과 하위 호환된다.
  • General MIDI Level 2(GM2): 1999년에 MMA와 AMEI에서 제정된 표준.

자작 MIDI 악기

21세기인 지금 시점에서 보면 MIDI 1.0 사양은 케케묵은 낡은 규격이지만, 이미 알려질 것이 다 알려진 상태이고, 지금의 기술로 봤을 때에는 고성능의 디지털 전자회로가 필요하지도 않으며, 초보적인 기술만 사용해도 충분한 수준이기 때문에, 공을 조금만 들이면 관련 소프트웨어나 하드웨어를 직접 제작하기가 상당히 쉽다.

소프트웨어는 보통 오래된 신디사이저의 음색 편집 프로그램 중 Windows 98, Mac OS X 이전의 구 버전 Mac OS용으로만 제공되어서 현재 통용되는 운영체제에서는 사용할 수 없는 경우, 사용자가 직접 SysEx 메시지로 신디사이저를 제어하는 음색 편집 프로그램을 제작하여 무료로 공개하거나 돈을 받고 파는 경우가 꽤 흔하다. 하지만 소프트웨어 신디사이저를 직접 만든다면 어떨까?!

일부 특수 목적을 가진 MIDI 시퀀서, 플레이어 또는 MIDI 관련 프로그램을 직접 제작하여 사용하거나 공개하는 사람들도 존재한다. 관련 프로그램으로는 System Exclusive Message 만 전문으로 안정적으로 송수신을 하거나, 단음 MIDI 신호를 받아서 자동으로 화음을 만들어 주거나, 지금은 단종되고, 현재 통용되는 운영체제에서 동작하지 않으면서 SMF 형식이 아닌 독자적인 형식을 취하는 옛날 MIDI 시퀀서의 데이터를 SMF로 변환하는 것 등이 대표적이다.

하드웨어는 자작 MIDI 컨트롤러나 신호 변환기, 추가 신호를 병합하여 한 포트로 내보내는 것과 같은 것이 많다. 이런 것들을 자작하려면 대부분 PIC(Peripheral Interface Controller) 또는 AVR(Advanced Virtual RISC), ARM, 특히 Arduino, Raspberry Pi 와 같이 일종의 오픈소스로 표준화된 하드웨어 개발 킷과 소프트웨어 개발 환경을 사용할 경우, 생각보다 만만한 예산에, 조금만 배우면 누구나 쉽게 그렇다고 아주 쉽지는 않지만, 전자공학과 프로그래밍을 제대로 배우는 것 보다는 훨씬 쉬우니 자신만의 MIDI 컨트롤러를 개발할 수 있다.

그 결과로 다음 동영상과 같은 것이 탄생하게 되었다. 활성화가 많이 되지는 않았지만 전 세계적으로 이런 기상천외한 자작 MIDI 컨트롤러를 만드는 모임이 있으며, 한국에도 존재한다.


여담

  • 위의 설명을 보면 알았겠지만, MIDI 신호 자체는 오디오 데이터가 아닌, 음을 연주하는데 필요한 정보를 가지고 있다. 따라서 MIDI신호를 수신하여 소리를 만드는 기기/가상악기 프로그램에 따라서 소리가 천차만별로 달라지게 된다.
  • PC용 고전 게임을 해본 사람이면 Roland MT-32라는 것이 굉장히 익숙할 텐데, 이는 1980년대 말에 개인용으로 Roland에서 내놓은 MIDI를 채용한 사운드 모듈이다. 당시로는 매우 파격적인 컨셉에 혁명적인 물건으로, 일본에서는 대박을 치게 된다. MT-32보다는, 동일한 회로에 전면 패널의 버튼과 액정이 제거된 CM-32L이 더 많이 팔렸다. GM 표준이 생기기 이전에 나와서 악기 배치가 다소 다르지만, 전면 액정과 버튼이 있어서 강제 할당이 가능했으며 대부분의 소프트웨어에서 MT-32 모드를 별도로 지원해서 큰 문제는 되지 않았다.
  • 음악 연주 데이터에 관한 규격이지만 신호 자체는 다용도로 활용이 가능하다. 이를 활용해 각 신호에 단축키를 할당하여 미디 컨트롤러로 음악 연주와 무관한 다른 소프트웨어를 조작하거나, 미디 컨트롤러 없이 특정한 미디 신호를 만들어내도록 할 수도 있다.
  1. 악기의 특성상, 다른 악기들에 비해 드럼과 베이스가 가상악기소리가 원음에 가깝기 때문이다. 특히 드럼의 경우는 Superior Drummer 같은 걸출한 프로그램이 있다. 메슈가 같은 세계구급 밴드도 사용하는 프로그램이라 카더라.
  2. 1 MHz, 1,000,000을 32로 나누면 이 값이 나오기 때문에 채용되었다고 한다. 문젠 이게 1983년엔 충분히 빠른 것이었지만, 발표된 지 30년이 다 되어가는 지금에서는 엄청나게 느린 속도라는 것.