2020년 9월 3일 목요일

[우분투의 사운드와 MIDI] sendmidi 명령어를 이용하여 SC-D70의 프로그램 변경

MIDI sound module에서 프로그램이라 함은 개별적인 악기의 소리를 말한다. 프로그램 1번은 피아노, 17번은 오르간, 33번은 어쿠스틱 베이스 등으로 이어지면서 128번은 총소리로 끝난다. 그러면 겨우 128종류의 소리밖에 내지 못하는가? 그렇지는 않다. CC 00 ## 명령(bank change MSB)으로 variation number(##)를 입력하여 동일 프로그램 계열에 속하는 다른 종류의 악기 소리로 바꿀 수가 있다.

만약 내가 음악을 만드는 작업 중이라면 시퀀서 프로그램에서 각 채널에 대한 악기 설정을 다루면 그만이다. 하지만 마스터 건반을 연결하여 그냥 뚱땅거리며 소일을 하고 싶을 때는 이렇게까지 하기가 너무 귀찮다. 이러한 소리 변경 작업을 SC-D70의 전면 버튼으로 하려면 상당히 번거롭다. 숫자 버튼이 있는 것이 아니라 +/-로 수치를 바꾸어야 하고, program/variation 번호를 입력하는 모드로 전환하는 방식도 그러하다. 물론 컴퓨터 키보드 수준의 조작 버튼이 있다면 금상첨화겠으나 덩치가 커지고 제작비도 많이 들 것이 뻔하며 시간이 오래 지날수록 버튼의 접촉이 나빠질 것이다. Korg X2의 버튼도 몇 개는 아주 세게 누르지 않으면 입력이 되지 않는다.

Rosegarden을 열어놓고 SC-D70의 음색을 바꿀 수도 있다. 하지만 터미널 창에서 CC 00 및 PC(program change) 명령을 날릴 방법은 없을까? alsa-utils의 amidi에서 SysEx를 송수신할 수 있듯이. 개별적인 MIDI message를 보내거나 받게 해 주는 명령행 방식의 프로그램이 있을 것으로 생각하고 검색을 해 보았다.

역시 그런 프로그램은 존재하였다. 음악 앱 프로그래머인 Geert Bevin이 개발한 SendMIDI가 바로 그것이다. 리눅스나 맥에 설치하여 컴퓨터에 연결된 MIDI 장비로 메시지를 보낼 수 있다. 장비가 보내는 신호는 ReceiveMIDI라는 별도의 프로그램으로 수신할 수도 있다. 생명정보학 프로그램을 입수하기 위하 뻔질나게 들락거리는 GitHub에서 음악 작업을 위한 소프트웨어를 입수하게 될 줄은 꿈에도 몰랐다. 업무와 취미의 묘한 접점이라니... 이것은 모두 음악 취미를 위한 컴퓨터의 OS를 우분투로 결정했기에 가능한 일이었다.

다음 스크린 캡쳐는 SC-D70의 음색을 00 00(piano)에서 26 00(piano+choir1)로 바꾸고 소리를 내는 과정을 보이고 있다. 뒤에 위치한 숫자가 프로그램 번호인데, 사용자 매뉴얼에는 1-128의 범위로 나와 있지만 MIDI 장비로 보낼 때에는 0-127의 범위로 바꾸어야 한다. SC-D70은 SC-8820의 map을 사용하므로 이를 그대로 따르면 된다.

SendMIDI의 실행 사례.

CC는 Control Change의 약자라는 사람도 있고, Continuous Controller의 약자라는 사람도 있다. CC 번호의 의미를 잘 설명한 웹사이트가 있어서 소개해 둔다. PDF 파일로도 제공하고 있어서 인쇄하여 활용하기에도 좋다.

MIDI Continuous Controllers List

sendmidi를 잘 활용하면 스페이스 바를 누르는 것으로 댐퍼 페달의 작동을 대신하는 스크립트를 만들 수도 있겠다. 음... 그러면 노트북 컴퓨터를 바닥에 내려놓고 발가락으로 스페이스 바를 누르면 되겠구나.

댓글 없음: