<b><font color=#0066ff>뮤직</font></b> 인터페이스

전자악기를 제어하는 미디(MIDI) 인터페이스

필자는 음악가가 아니다. 하지만 근래 들어 여러 DIY 프로젝트에 전자악기와 컴퓨터를 연결하는 인터페이스인 '미디(MIDI)'를 실험적으로 사용하고 있다.

미디는 서로 연결된 장비들 사이에 메시지를 보내 기기들을 제어하는 표준 규격이다. 이 메시지들은 MP3 같은 실제 음악이 아니라 음악을 만드는 데 필요한 명령어다. '가온 다음을 전자피아노로 재생하라'처럼 말이다.

각 메시지는 1~16 사이의 채널 숫자와 그 뒤에 따라오는 상태 바이트로 구성된다. 상태 바이트는 음 켜기, 음 끄기 등 메시지의 유형 정보가 담겨있으며 필요한 경우 '재생될 음' 등의 데이터가 따라오기도 한다.

미디 기기는 메시지를 만드는 컨트롤러로 인식되며 미디 신디사이저가 이 메시지를 받는다. 그 결과 음악소리가 나온다. 참고로 필자는 음 지시를 악기가 아닌 크리스마스트리 전구와 파이어볼에 전달하는 프로젝트를 수행했었다.

미디의 기본적 셋업에는 아두이노 같은 마이크로 컨트롤러, 물리적 인터페이스인 미디 실드(20달러, sparkfun.com), 그리고 미디 메시지를 이용해 통신하는 데 필요한 아두이노 미디 라이브러리(무료, arduino.cc)가 반드시 포함돼야 한다.

필자의 경우 사운드의 크기, 지속시간 등을 통제하는 제어변환처럼 간단한 기능의 시현을 위해 몇 줄의 스타터 코드를 작성했다.

'Real Time System Exclusive' 메시지를 쓰면 MIDI 타임 코드, 쇼 컨트롤, 머신 컨트롤 등 미디의 발전된 기능에 힘입어 음악 만드는 작업이 더욱 즐거워진다.


상태 바이트 (status byte) - 입·출력 인터페이스와 관련해 입·출력 기기 또는 입·출력 제어 장치의 기본 동작 상태를 나타내는 8비트 정보.


github.com/vinmarshall/MIDI-Examples에 접속하면 더 자세한 정보를 볼 수 있다.

<저작권자 ⓒ 서울경제, 무단 전재 및 재배포 금지>