Ardule = Arduino + (MIDI Sound) Module
아두이노 나노를 이용하여 SAM9703 도터보드를 제어하는 MIDI 컨트롤러를 만들기로 하였다. 저가 GM 음원 보드라고 가볍게 취급하기에는 상당히 많은 가능성이 있어 보이기 때문이다. 동시발음도 48이나 되고, 프로그램을 적당히 레이어링하면 키보드를 연결하여 라이브에서 써도 괜찮을 것 같다.
일반적으로 아두이노를 사용하여 만드는 DIY MIDI 컨트롤러는 노브와 버튼 스위치로 구성되어서 '핑거 드럼'을 구현하거나, 또는 VFC(Variable-Cultoff Frequency)를 조절하는 용도로 많이 쓰인다. 나의 경우에는 KORG X2에서 'Combi' 음색을 만드는 방식과 유사하게 나만의 음색을 만들고 저장하여 활용하는 것을 목표로 한다. 만약 성공한다면, 사운드캔버스 SC-D70에도 MIDI 케이블로 연결하여 활용할 수 있을 것이다.
대략적인 목표를 잡은 뒤 챗GPT에게 질문을 해 가면서 과연 아두이노 나노로 가능한지 알아보았다. 최대 4개 채널의 레이어 및 스플리트를 구현하되 20x4 LCD 디스플레이를 사용하며, microSD 카드에 저장된 type 0 MIDI 파일의 재생 기능까지... 챗GPT는 충분히 가능하다고 하였다.
![]() |
어제까지는 myStation이라고 불렀었다. 아직 시작도 하지 않은데 괜히 칭찬을 하면서 사람을 우쭐하게 만든다. |
아두이노 나노를 오랜만에 꺼내어 USB 케이블로 연결해 보았다. 아두이노 IDE 최신판(2.3.6)에서 인식이 되지 않았다. 정품이 아닌 호환 보드라서 그런 것일까? 구글에서 검색을 해 보니 CH341 드라이버를 설치하라고 한다.
![]() |
'NANO'라고 인쇄된 것 바로 아래의 부품은 리세트 스위치였다. |
챗GPT에게 물어보면 코드와 연결 방법까지 친절하게 알려준다. 오늘 테스트한 것은 GM/GS reset SysEx의 인식 여부였다. 기대했듯이 아주 잘 작동함을 확인하였다. MIDI 메시지는 일종의 시리얼 통신 체계이므로 아두이노 나노의 TX 핀과 GND 핀을 쓰는 것으로 충분하였다. Serial.write() 함수를 이용하여 간단하게 멜로디를 연주해 보기도 하였다.
몇 시간 가지고 놀아 본 결론은 핵심 기능보다 메뉴 구성이 가장 까다로운 것 같다. 여기에도 파레토의 법칙 '변형'이 적용된다. 전체 기능의 80%를 구현하는데에는 20%의 노력이 들고, 나머지 20%의 기능을 채우려면 80%의 노력이 든다. 인생도 그렇지 않은가?
댓글 없음:
댓글 쓰기