Nano Ardule Drum Pattern Player에서 사용할 드럼 패턴 자료 파일(ADP/ADT)을 PC에서 미리 확인하기 위한 프로그램을 만들어 보았다. 이름은 Ardule Pattern Studio(APS). 예전 DOS 시절의 향수를 불러 일으키는 텍스트 기반의 도구이다. 아마 80년대 Norton Commander의 느낌이 날 것이다. 바탕을 파랑색으로 바꾸면 더 비슷해 보이지 않을까? 이미 만들어 둔 adt2adp.py를 재사용하는 조건으로 이 파이썬 스크립트를 만들고 테스트하는 데에는 두 시간 정도 밖에 걸리지 않았다. 놀라운 챗GPT의 힘이여! 핵심 기능을 먼저 구현한 뒤 추가적인 기능을 덧붙여 나가는 과정을 택했기에 오류도 거의 발생하지 않았다.
| 파이썬으로 짜여진 APS v0.7은 주석을 포함하여 약 1100줄 정도. 눈으로 보고, 소리를 귀로 듣는다! |
드럼 패턴을 화면에 보여주고, MIDI 기능을 이용하여 재생도 할 수 있다. 추가할 기능도 몇 가지 생각해 두었다. 패턴을 조합하여 전체 곡에 해당하는 자료를 만드는 체인 에디터 기능이 다음 목표이다. 체인 에디터란, 이미 준비된 패턴을 조합하여 한 곡 전체에 해당하는 데이터를 만드는 것이다. 저장 방식은 전용 문법을 사용한 텍스트 파일 형태(.ARR), 또는 이를 바이너리로 전환한 것 모두를 고려하고 있다. 다음은 어제 촬영한 v0.7의 작동 영상이다.
아두이노 나노 에브리에서 체인 에디팅을 하는 것도 가능할 것이다. 그러나 몇 개 되지 않는 버튼과 인코더 하나, 그리고 1602 LCD라는 열악한 환경에서 이를 힘겹게 구현하는 것은 쉽지 않을 것이다.
APS는 PC에서 ADP/ADT를 관리하고 ARR 관련 작업을 하는 도구로서 매우 유용하게 쓰일 것이다. 하나의 목적을 위해 관리하는 프로그램과 문서가 점점 많아지고 있기 때문에 처음에는 전혀 생각하지 않았던 GitHub를 활용하는 것을 심각하게 고려하게 되었다. 나도 일이 이렇게까지 전개될 줄은 몰랐다.
여담이지만 ADP는 원래 Microsoft Access Project 파일의 확장자라고 한다. 그래서 Gmail이나 네이버 메일에서 이를 첨부하는 것을 금지하고 있으며, 심지어 zip 파일의 내부까지도 검사를 하여 차단한다. 이러한 사실을 미리 알았다면 나의 드럼 패턴 정보 파일에 ADP(Ardule Drum Pattern)라는 확장자를 붙이지는 않았을 것이다. 그러나 동일한 정보를 수록한 텍스트 파일(ADT)를 별도로 갖고 있었기 때문에 메일에 첨부할 수 있었다. ADT를 유지하는 것이 과연 필요한지 고민을 하고 있었는데 아직 쓸모는 남아 있는 것 같다.
PC 쪽에서 해야 할 일
인터넷을 뒤져서 드럼 패턴이 수록된 MIDI 파일을 구하는 것으로부터 시작한다. 드럼 패턴만 들어있는 파일도 있고, 유명한 8-90년대 팝송을 MIDI 파일로 만들어 놓은 것도 있다. 두번째의 경우라면 드럼 채널에 해당하는 것을 뽑아내는 유틸리티를 파이썬으로 만들 수 있다.
만약 MIDI 파일이 type 1이라면 type 0으로 전환한다. 그 다음, 이를 2-bar 단위로 분할하여 작은 MIDI 파일을 만든다. 이것으로부터 ADT를 먼저 만들고, adt2adp.py를 이용하여 바이너리 형태의 파일인 ADP를 만들게 된다. ADP는 마이크로SD카드에 저장하여 Nano Ardule에 연결한다. 물론 ADP 파일과 더불어 별도의 인덱스 파일을 만들어서 같이 저장해야 한다.
오늘 소개한 aps.py는 ADT 또는 ADP 파일을 PC쪽에서 간편하게 확인하기 위하여 하룻저녁에 뚝딱 개발한 것이다. 일반적인 패턴과 '브레이크' 패턴을 구분하여 패턴 파일명을 변경하기 위한 것이 근본적인 개발 목표였다. 인공지능으로 하여금 자동으로 브레이크를 구별하게 만든다면? 불가능한 일은 아니지만, 처리할 패턴이 수만 개 정도 된다면 모를까, 차라리 눈과 귀에 의존하는 것이 더욱 정확할 것이다.
aps.py의 다음 단계 개발 목표는 ADT/ADP 파일을 엮는 체인 에디팅 기능을 구현하는 것이다. 이 단계에 이르면 Ardule Pattern Studio라는 이름이 비로소 의미를 갖게 될 것이다. 그리드 형태의 패턴 자체를 편집하는 기능까지... 글쎄, 욕심이 과하다. DIY로 드럼 패턴 자체의 에디팅을 하는 도구를 만드느니 차라리 라즈베리 파이에서 Hydrogen을 쓰는 것이 더 낫겠다.
배움의 목적이라는 GitHub 생태계에 들어가는 것이 더 중요하고도 시급하다. 그 다음에는 패턴을 이어서 곡 단위의 파일을 만들도록('체인 에디팅') aps.py를 매만지는 것이고, 패턴 에디팅은 그 다음에 생각하도록 하자.
댓글 없음:
댓글 쓰기