최근 수정 시각 : 2024-12-11 11:41:58

MIDI


파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
자일대우의 버스에 대한 내용은 자일대우버스 BS 문서
번 문단을
BS090 로얄미디 (2002~현재) 부분을
, 일본의 DJ에 대한 내용은 m1dy 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
1. 개요2. 특징3. 역사4. MIDI의 영향5. 용도6. 기초 용어7. 규격
7.1. 초기의 하드웨어와 신호 규격7.2. 그 밖의 통신 규격7.3. MIDI 데이터 메시지 규격7.4. 파일 형식
7.4.1. Standard MIDI File(SMF) 07.4.2. SMF 17.4.3. SMF 2
8. MIDI 장비
8.1. 컴퓨터 인터페이스8.2. 컨트롤러8.3. 악기8.4. 그 밖의 MIDI 장비8.5. 확장 규격
8.5.1. General MIDI(GM)
9. MIDI 표준 1.0 규격의 단점
9.1. 단점에서 오는 장점
10. 이야기
10.1. MIDI는 DAW와 같지 않다
11. 링크
11.1. 관련 문서

1. 개요

Musical Instrument Digital Interface

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

파일:9dadce9d00363fdf2abb27e970446247_1580289056_3978_(1).jpg
최신 규격은 2021년 제정된 MIDI 2.0으로 1.0과 하위호환된다.

2. 특징

MIDI 1.0은 음계가 128개, 피치 밴딩은 14비트 즉 16383개이며, MIDI 2.0은 음계가 16비트 즉 65536개, 피치 밴딩은 32비트 즉 4,294,967,296개인 주 특징이 있다.

웨이브나 MP3 등의 파일은 소리의 파형을 녹음한 것이지만 MIDI는 전자 악기를 연주하기 위한 악보 그 자체라고 할 수 있다. 즉 MIDI는 음악을 연주할 때 피아노로 도를 치고 드럼을 몇 박자로 쳐라와 같은 명령어만이 적혀 있는 것이다.

따라서 MIDI 파일은 용량이 매우 작다. MIDI 파일은 커봤자 100kB를 넘지 않는 경우가 많다.[3] MIDI가 등장할 당시의 컴퓨터로는 실제 연주를 녹음한 음악 파일을 공유하기에는 저장 공간이나 처리 능력이 많이 부족했으나, MIDI 파일은 그저 악보에 지나지 않기 때문에 상대적으로 제약이 적었다. 또한 MIDI 규격을 사용하면 완전히 다른 회사에서 제작된 전자 악기일지라도 서로 통신하고 사용하는 데 문제가 발생하지 않으며, 이로 인해 결과적으로 전자 악기를 사용하는 음악의 가능성을 이전과는 다른 매우 다양하고 새로운 차원으로 확장시키는 데 성공한다.

악기마다의 소리가 다 다르듯 같은 MIDI 파일을 사용하더라도 전자 악기에 따라 소리가 천차만별로 다르다. MIDI는 물론 표준화된 규격이므로 한 사운드모듈에서는 드럼 소리가 다른 사운드모듈에서는 심벌즈 소리로 나온다거나 하는 사태는 잘 벌어지지 않으나, 똑같은 드럼 소리라도 분위기가 차이가 있고 그 품질도 다르다. 따라서 저렴하거나 성능이 낮은 사운드모듈로 재생한 경우 사운드 품질이 떨어지고, 좋은 것을 쓰면 품질이 그럴싸해진다. 가상악기사운드폰트 문서 참고.

PC 게임도 게임 음악을 MIDI로 쓴 경우 사운드카드별로 소리는 천차만별이었다. MIDI를 게임 음악으로 사용하는 고전 컴퓨터 게임을 해봤던 사람이라면 잘 알 것이다.[4] 이런 파편화는 원작자의 의도가 잘 반영되지 않을 수도 있다는 단점이 있었지만 쓸 수밖에 없었다. 당시 PC는 여러 PCM 음원을 믹싱해서 출력하는 기술이 없어서 PCM 음원은 효과음 전용으로, 배경음악은 MIDI 밖에 사용할 수 없었기 때문이다. 그러다가 1990년대 중반 CD-DA 음원을 쉽게 사용할 수 있는 CD-ROM 시대가 열린 이후 밀리는 양상을 보이다가, 1990년대 후반 PCM 음원을 실시간으로 믹싱하여 출력하는 기술이 보편화되면서 배경음악 용도로서의 MIDI는 PCM 음원에 밀려 순식간에 사라졌다.

예시로 1994년 발매 당시 쓰이던 다양한 사운드모듈로 돌린 고전 게임 디센트의 테마 음악을 한 번 비교해보자. 앞서 말했듯이 드럼 소리부터 확실히 다르며, 악기나 소리의 전문적인 강약 조절 표현으로 분위기가 상당히 차이가 난다.
작곡용 신디사이저 롤랜드 SC-88 사운드 블래스터 AWE32 야마하 OPL3 CD 오디오[5]

고전 게임이 아니더라도 여러 노래방을 다니다 보면 이런 것을 경험할 수 있다. 노래방 기계가 사용하는 MIDI 사운드모듈이 비교적 구식 기술로 제작되어서 그렇다. 음질에 신경 쓰는 회사들은 신기술이 적용된 사운드모듈을 사용하여 대충 쓸만한 반주가 나오지만, 상당히 오래된 기술로 제작된 사운드모듈을 사골마냥 우려먹는 회사들도 많다. 그럼에도 한국 중소기업 수준의 기술력으로는 고품질의 사운드 모듈을 개발하기가 상당히 어려워서 이름있는 노래방 회사의 자체 음원들은 다른 회사와 공동 개발한다.

3. 역사

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

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

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

롤랜드의 창립자 카케하시 이쿠타로는 오버하임 일렉트로닉스의 창립자 톰 오버하임에게 전자 악기간 표준화의 개념을 제안하였고, 톰 오버하임은 시퀀셜 서킷의 사장 데이브 스미스에게 이 이야기를 전달하였다. 1981년 10월, 카케하시, 오버하임, 스미스는 야마하, KORG, Kawai의 대표들과 이 아이디어를 논하였다.

시퀀셜 서킷의 엔지니어들과 신시사이저 디자이너인 데이브 스미스와 쳇 우드는 통일된 신시사이저 인터페이스를 고안해냈으며, 이 인터페이스는 각기 다른 제조업체들의 장비간 직접 통신을 허용하였다. 1981년 11월 스미스는 이 표준을 오디오 엔지니어링 소사이어티(AES) 쇼에 제안하였다. 이후 2년간 야마하, 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의 역사가 시작되며 전자 악기를 사용한 음악의 판도가 말 그대로 혁명적으로 바뀌게 된다.

4. MIDI의 영향

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

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

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



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

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

현재 대다수의 노래방 기기는 MIDI 음원을 주로 사용하는데, 1990년대 초 컴퓨터에서 MIDI 음원이 주로 사용되다 보니 자연스럽게 MIDI 음원을 사용하는 것으로 자리잡은 것이 오늘날까지 오게 된 것이다. MIDI 음원을 사용하기 전에 한국은 FM 음원이나 PCM 음원을 주로 사용했으며, 일본은 레이저디스크를 재생하는 방법을 주로 사용했다.

MIDI는 휴대폰에도 채용되어 피처폰 시기에는 벨소리나 알림음을 MIDI 형식으로 저장 및 재생했다. 피처폰의 스펙 중에 단음, 16화음, 64화음 같은 것이 동시에 재생할 수 있는 가상 악기의 개수였다. 벨소리를 저장하기 위한 데이터 양도 적었기 때문에 2G나 초기 3G 시기의 무선망으로도 전송할 수 있었고, 이동통신사들은 한동안 벨소리 장사로도 부가 수입을 벌 수 있었다. 후기 피처폰이나 스마트폰에서는 벨소리나 알림음으로 그냥 음악 파일을 재생하는 데 제약이 없어졌기 때문에 더 이상 중요하게 취급되지 않는다. Android 6.0 이후에 추가된 USB MIDI 지원은 피처폰의 MIDI 음원과는 아무런 관계가 없고, 휴대폰을 MIDI 장치로 사용하거나 휴대폰에 MIDI 장치를 연결하는 데 사용된다.

게다가, MIDI 덕에 프로젝트성 음악 활동에 외부 세션이나 게스트를 고용하는 경우도 대거 줄었으며, 이러한 음악 생산 작업의 중심은 MIDI 작업을 하는 컴퓨터가 차지하게 되었다. 전문 음악인들도 이 시스템을 도입하여 자택에서도 녹음실을 만들 수 있을 정도였다. 물론 특성상 녹음 자체에 한계가 있지만, 이것은 이후 1990년대에 등장한 DAW에 의해 완전하게 해결된다.

MIDI를 좀 더 응용하여 무대 조명 장치나 특수 효과 장치를 직접 MIDI 신호로 제어할 수 있는 장치도 만들어졌다. 이를 응용하면 음악에 맞춰 조명을 제어할 수도 있다.

5. 용도

MIDI는 주로 전자 악기 사이에 연결 또는 음악 연주와 제작에 이용된다. MIDI 규격에 따라 만들어진 데이터는 MIDI 규격을 준수하는 다른 전자 악기에 바로 전송되어서 연주를 할 수 있고, MIDI 시퀀서 또는 DAW[6]를 사용해 편집, 재생할 수 있다. 이런 특징이 있기 때문에 비트메이킹을 할 때도 DAW와 MIDI를 사용한다.

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

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

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

6. 기초 용어

  • 음색(Timbre, Voice, Patch, Program): 독립된 개별 악기로 인식할 수 있는 소리이다.
  • 포트(Port): 전자 악기나 컴퓨터 사이에 연결은 물리적인 포트 단위로 이루어진다. 1포트는 최대 16개의 채널을 가진다. 보통 IN, OUT과 함께 IN으로 들어온 신호를 그대로 다시 전송하는 THRU 포트가 장착되며, 필요에 따라서 2쌍 이상의 IN, OUT 포트가 장착되는 경우도 있다.
  • 채널(Channel): 음색을 할당하는 단위가 된다. 즉 1개의 MIDI IN 포트를 가진 기기는 동시에 최대 16개의 음색을, 2개의 포트를 가진 기기는 최대 32개의 음색을 연주할 수 있다. 보통 하나의 포트 내에서는 10번 채널은 드럼을 연주하는 채널이다.
  • 베이스 채널(Base Channel): 컨트롤러가 같이 연결된 전자 악기의 경우, 내부 컨트롤러가 사용하는 첫 번째 채널이다. 보통 1 이지만, 전자 악기가 구현된 형태에 따라서 건반 영역 별로 이것을 다르게 지정할 수 있는 악기도 있다.
  • 로컬 컨트롤(Local Control): 전자 악기 내부에서 MIDI 컨트롤러가 만드는 신호와 음원부의 연결을 제어한다. 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개 채널을 연주할 수 있는 신디사이저에서는 이 이외의 채널로 들어오는 신호는 무시된다.

      MIDI 채널 모드는 조합에 따라 다음의 표와 같이 4 가지로 구분되며, 보통 전자 악기를 켜면 자동으로 Mode 1인 Omni On, Poly 모드로 설정된다.
Poly Mono
Omni On Mode 1 Mode 2
Omni Off Mode 3 Mode 4

7. 규격

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

MIDI 1.0 표준에 의하면 31250bps[8] 비동기 직렬 통신을 하며, 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 장치는 아직도 전문 음악인들 사이에서 사용된다.

7.2. 그 밖의 통신 규격

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

7.3. MIDI 데이터 메시지 규격

깊게 들어가면 길이가 너무 길어지므로, 간단하게 요약하면 다음과 같다. 혹여나 자세한 내용을 알고 싶다면 https://www.midi.org/specifications 또는 https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-status-bytes를 참조하라.

MIDI 데이터 메시지는 메시지 종류를 구분하는 상태/채널 바이트와 뒤이어 따라오는 1~2개의 데이터 바이트로 구성된다. 물론, 바이트이니 만큼 데이터는 최대 8비트이며, MIDI는 사실 이 중에 7비트만 사용한다. 즉 가능한 데이터 값은 0~127이다. 필요한 경우 2바이트 14비트를 데이터로 취하여 0~16383의 파라미터를 취하는 메시지도 있다.
  • Note On: 음을 낸다. 음높이와 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과 별도로, 보통 소리를 낸 이후에 발생하는 Volume 변화를 제어할 때 쓰인다.
    • Sustain(64): Note Off가 들어와도 음을 쭈욱 유지한다. 보통 키보드에서 가장 흔히 쓰이는 페달이 이 Sustain을 제어하는 페달이다.
  • Program Change: 채널의 음색(Program, Patch)을 변경한다.
  • Pitch Bending: MIDI 1.0에선 14비트 값으로 0 ~ 16383 사이의 값을 취하며, MIDI 2.0에선 32비트 값으로 0 ~ 4,294,967,295 값으로 연주되고 있는 음높이를 변경할 때 사용한다.
  • System Exclusive: 보통 줄여서 SysEx 라고 표기한다. MIDI 표준에 규정된 메시지 이외에, 전자 악기별로 특화된 설정 또는 데이터를 전송할 때 사용하며, 주로 신디사이저의 메인 설정 또는 Patch(Program) 데이터를 주고받을 때 사용한다. 일부 전자 악기는 심지어 이것으로 펌웨어 업그레이드 데이터도 전송한다.
  • MIDI Clock: 기보 형식, 즉 마디와 구절에 따른 현재 곡의 재생 상태에 대한 정보를 전송한다.
  • MIDI Time Code: SMPTE에 대응되는 신호를 MIDI로 구현한 것.

7.4. 파일 형식

MIDI 음악 자체는 확장자 .mid를, 노래방용 파일은 .kar(가라오케) 확장자를 가진다[9]. 거의 비슷하지만 세부 형식에서 약간 차이가 있다.

7.4.1. Standard MIDI File(SMF) 0

모든 데이터가 한 트랙에 몰려있는 형식. 가장 단순하나 열어보는 사람 입장에서는 고역이다. 물론 해독하기 힘들다는 특성 덕에 노래방 데이터나 벨소리 데이터가 이 형식으로 되어 있는 경우가 많으나, 현실은 그런거 없고 최신 시퀀서는 알아서 다 채널별로 분리해준다.

7.4.2. SMF 1

여러 개의 트랙을 사용하는 형식. 일반적으로 이 형식이 가장 많이 사용된다.

7.4.3. SMF 2

여러 개의 트랙을 사용한다는 점은 SMF 1과 동일하나, 각 트랙들을 동시에 연주하는 SMF 1과 달리 각각의 트랙을 동시에 연주하지 않고 순차적으로 연주한다. 쉽개 말해 여러 개의 SMF 0 파일을 하나의 파일로 묶어 놓은 거라고 보면 된다. 일반적으로 SMF 2 형식을 사용하는 경우는 매우 드물다.

8. MIDI 장비

8.1. 컴퓨터 인터페이스

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

8.2. 컨트롤러

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 트랙을 제어하는 것이다.
  • 그 밖에 정말 드물지만 하모니카, 아코디언 형태의 컨트롤러도 등장한 적이 있다.

8.3. 악기

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

8.4. 그 밖의 MIDI 장비

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

8.5. 확장 규격

8.5.1. General MIDI(GM)

MIDI의 등장 이후로 서로 다른 전자 악기간에 통신을 할 수 있게 된 점은 대단한 장점이었지만, 새로운 문제가 발생했다. 이쪽 악기를 기준으로 작성된 MIDI 데이터를 저쪽 악기에서 재생하면 완전히 엉뚱한 소리가 발생하는 것. 예를 들어 이쪽 악기에서 1번 패치는 피아노였는데 저쪽 악기에서는 1번 패치가 트럼펫이라든지와 같은 식이다. 따라서 패치의 소리와 최소한의 컨트롤러를 표준화하여 이 규격을 지키면 일정수준의 MIDI 데이터를 재생했을 때 호환성을 보장하는 표준 규격으로 1991년에 등장한 것이 General MIDI(GM) 이다. 1번 패치는 그랜드 피아노고 128번 패치는 총소리이다.

그러나 이것도 급증하는 음색과 다양한 악기의 기능을 소화하는데는 충분하지 않다고 판단되어, 일부 회사별로 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에서 제정된 표준.

9. MIDI 표준 1.0 규격의 단점

오디오 데이터를 직접 다루지 못한다는 점은 충분한 단점이지만, 이미 이 상태로 37년이 지났으며, 1983년 당시의 기술로서는 어쩔 수 없는 부분이 있음을 이해해야 한다.

그리고 31250 bps 의 느린 속도는 매우 복잡한 곡의 데이터를 전송하는데 걸림돌이 된다. 물론 이 부분은 USB, IEEE1394, IP Based 네트워크 등으로 물리적 전송부분이 바뀌면 일단 해결된다.[12]

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

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

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

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

9.1. 단점에서 오는 장점

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

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

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

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

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


10. 이야기

PC용 고전게임을 해본 사람이면 Roland MT-32라는 것이 굉장히 익숙할텐데, 이는 1987년에 개인용으로 Roland에서 내놓은 MIDI를 채용한 사운드모듈이다. 당시로는 매우 파격적인 컨셉에 혁명적인 물건으로, 생각보다 인기를 끌게 된다. MT-32보다는, 동일한 회로에 전면 패널의 버튼과 액정이 제거된 CM-32L이 더 많이 팔렸다.

MT-32의 뒤를 잇는, GS 확장규격을 채용한 취미용, 개인용 MIDI 음원으로 1990년대에 대박 히트를 친 Roland의 사운드모듈, 사운드 캔버스라는 것이 있었다. 이후 PC 게임에서는 이것을 지원하는 경우가 많았다. MIDI는 거의 1990년대 후반까지 게임 배경음악으로 사용되었는데, 당시 사운드 카드의 실시간 믹싱 성능이 떨어져서 PCM 음원으로 효과음과 배경음악을 같이 출력하기 힘들었기 때문이다. 덕분에 윈도우 시대에도 MIDI는 CD Audio[15]와 함께 게임 배경음악의 양대 산맥이었고, 이후 사운드 카드의 믹싱 성능이 올라가면서 실시간 믹싱이 대세가 되자 그 자리를 PCM 음원에 넘겨주었다. 그러나 MIDI 음악을 녹음하여 PCM 음원으로 제공하는 방식은 아직도 많이 사용되고 있다.

영화등에 사용되는 오케스트라 연주도 실은 컴퓨터의 연주인 경우가 부지기수. 이런 기술의 발달로 동인 게임 등에서도 상당히 고수준의 음악이 배경음악으로 나오는 경우도 왕왕 있다. 그러나 이전의 낡은 감각의 가상악기를 선호하는 사람들도 있어, 일부러 1980~1990년대적인 수준의 가상악기 스타일로 음악을 만드는 사람들도 있다. 대표적으로 YMCK. 동방 프로젝트ZUN도 구식 MIDI 음원의 브라스 소리를 좋아한다고 밝힌 적이 있고, 실제 곡도 구식 MIDI 음원스러운 느낌이 강하다.[16]

Windows Me의 폴더 내에서 주옥같은 MIDI 걸작이 나온다. 참고로 이건 최신 버전인 Windows 11에도 있다!

1990년대 후반부터 인터넷의 보급되면서 개인 홈페이지 붐이 일었을 때 홈페이지의 배경음악을 책임졌던 파일 형식이기도 하다. 당시 회선 환경상 MP3를 넣기는 부담이 크던 시절이라 용량이 작은 MIDI가 대세가 되었던 것이다. 지금은 유튜브 등을 통해 생생한 음악은 물론 비디오까지 웹에서 볼 수 있다는 점을 생각하면 그야말로 격세지감. 지금 와서 MIDI 파일을 배경음악으로 쓰고 있는 홈페이지가 있다면 십중팔구 옛날에 만든 게 아직도 남아 있는 경우다.

MIDI의 실제 연주 모습을 보여주면서 재생하는 MIDIJam이라는 플레이어도 있는데, SiIvaGunner가 이걸로 Mingo Games의 저질 MIDI를 재생시켜서 밈으로 만들어버렸다. 항목 참조.

오투잼과 비슷한 건반게임인 Virtual Orchestra Studio v.1.0은 mid파일을 기반으로 채보가 만들어진다. 물론 노트가 할당되는 키는 계이름을 따르는 게 기본. vos creator를 깔아서 위치를 바꾸거나 할 수 있다. 물론 버전이 버전이라 마이크로소프트 사운드폰트만 지원되는듯…

10.1. MIDI는 DAW와 같지 않다

MIDI 등장이 홈 스튜디오의 등장에 강력한 영향을 줬고, 현존하는 DAW 프로그램이 기본적으로 MIDI 시퀀싱 기능을 내장하고 나오지만, 분명히 MIDI는 DAW와 다르다. 원래는 음원을 편집하고 믹싱하는 기능으로 나온 DAW와 작곡 프로그램에 해당하는 MIDI 시퀀서는 별개였으며, 후에 DAW와 MIDI 시퀀서가 합쳐지는 식으로 발전하였고, 이를 믹싱 프로그램에 해당하는 DAW로 부르게 되었다. 즉, DAW의 의미가 믹싱과 MIDI 편집이 둘 다 가능한 프로그램으로 변질되었으며, DAW의 의미가 변질된 지금의 DAW에게 MIDI는 하나의 구성요소이지 DAW와 같지 않다. 물론 원래 의미의 믹싱 프로그램인 DAW 기능이 없는 순수 MIDI 시퀀서 역시 존재한다.

흔히 컴퓨터 음악을 배운다고 하면 90년대 중반까지는 "MIDI로 음악하는 것을 배운다" 라는 표현을 썼다. 그 시절까지는 사실상 MIDI가 컴퓨터로 하는 음악의 전부나 다름이 없었기 때문이다. 그러나, MIDI가 내장되는 식으로 발전한 DAW가 보편화된 지금은 분명 다르다.

11. 링크

  • http://www.midi.org MMA 사이트. 일부 MIDI 표준 규격이 공개되어 있다.
  • 미딕스 한국 MIDI 관련 커뮤니티 중 한 곳. 간단한 강좌나 MIDI를 사용하여 만든 곡들을 공유하고 있다.[17]
  • 미디유저넷 비교적 활성화된 한국 MIDI, DAW 관련 커뮤니티.
  • Midisite 영어권 MIDI 파일 검색에 용이한 사이트.
  • VGmusic 서양권 게임 MIDI 사이트. 각종 게임 음악들을 MIDI로 올리는 괴수들이 즐비한 곳이다. 고전 게임뿐이 아닌 최근 게임들의 음악까지 MIDI로 만드는 무서운 곳.

11.1. 관련 문서



[1] International MIDI Users Group(IMUG)이 전신으로, International MIDI Association(IMA)을 거쳐 1984년에 MMA가 되었다.[2] 音楽電子事業協会 통칭 아메이(アメイ), Association of Musical Electronics Industry(AMEI), 구 Japan Midi Standard Comitee(JMSC)[3] 베토벤 합창 4악장이 재생시간 22분임에도 불구하고 373kB이다.[4] 비스타와 7이 나온 요즘도 흔히 쓰는 Windows XP에 기본으로 들어 있는 가상 모듈은 Roland 사에서 만든 것인데 컴퓨터 음악을 하려면 봉인하자. 레이턴시(발음 지연)가 무려 0.5초나 되기 때문에 다른 악기와 호환이 불가능하다. 하지만 자주 들었다면 참 그리운 소리. 재밌게도, macOS에 기본으로 내장된 소프트웨어 신디사이저인 DLSMusicService의 소리도 Roland사에서 만든 것인데 이쪽은 지연이 없다. 윈도우 계열에서 음악 작업을 하려면 최소한 윈도우 8 이상은 가야한다. WASAPI 항목 참조[5] 즉 MIDI가 아니라 작곡가가 의도한 버전[6] 요즘은 순수 MIDI 시퀀서는 잘 안쓴다고 보면 된다.[7] 컴퓨터용 악보[8] 1 MHz, 1,000,000을 32로 나누면 이 값이 나오기 때문에 채용되었다고 한다. 문젠 이게 1983년엔 충분히 빠른 것이었지만, 발표된 지 30년도 넘은 지금에서는 엄청나게 느린 속도라는 것.[9] 과거 PC용 노래방 소프트웨어에서 자주 사용된 포맷이다. 당연하지만 실제 노래방 기계에서는 MIDI가 아닌 자체적인 파일체계를 사용한다. 유출되면 엄청 곤란하다보니 파일을 꼬아놓거나 암호화를 한다.[10] ISA 확장 슬롯용 사운드 카드를 사면 직렬 포트와 동일한 커넥터를 쓰는 MIDI 포트가 붙어 있었다. 주로 조이스틱용으로 쓰라고 붙어 있는 포트었는데, MIDI 포트로도 쓸 수 있었다.[11] 대략 2010년대 중반 이후에 나온 컴퓨터는 MIDI 포트, 병렬 포트, 직렬 포트가 없다.[12] 단, 이는 악기 제조사에서도 수신부가 USB, IEEE1394 등에 맞추어 빠르게 동작하도록 설계가 되어있어야 완전하게 해결된다.[13] mLan을 지원하는 기기 사이에서는 정말 자유롭게 이쪽의 오디오 신호 입력을 저쪽의 출력으로 설정할 수 있는, 즉 컴퓨터 안에서 마음대로 다른 기기들 사이에서 라우팅할 수 있었기에 당시로서는 혁신적인 기술이었으나, 시기적으로 시대를 너무 앞서서 발표되었다. 최근의 컴퓨터로도 mLan 장비가 많으면 버벅거림이 느껴지는데 2000년대 초반은 어떠했을까. 어쨌든 최종적으로 묻혔다.[14] 직접 해보면 알겠지만 System Exclusive Message는 생각보다 잘 깨진다. 그래서 대량의 패치 데이터를 송수신하거나 SysEx로 된 펌웨어 업그레이드 데이터를 전송할 때에는 충분히 버퍼링을 하면서 오류없이 안정적으로 SysEx를 전송하는 프로그램이 매우 중요하다. 이것에서 오류가 발생하면 최악의 경우 iPhone 탈옥하는 것도 아닌데 신디사이저가 벽돌이 되는 참혹한 경험을 할 수 있다!![15] 배경음악을 CD Audio 규격을 사용하여 음악 CD처럼 넣는 방식. 이 경우 트랙 1번은 게임 데이터가 들어가고, 트랙 2번부터 배경음악이 들어갔다. 음악 CD 규격을 사용하기에 이런 방식의 게임 CD-ROM을 CD 플레이어에 넣으면 2번 트랙부터는 음악이 재생되었다.[16] 그러나 최신작으로 올수록 Steinberg 사 가상악기의 비중이 높아져 스타일이 독특해졌다.[17] 회원 자작곡들도 많이 있으니 관심이 있다면 볼 것.