2026년 8월 3일 월요일

드럼 패턴 추상화(abstract)의 손익 계산

인터넷에서 구한 ALLSTARS.MID('The GS All-Stars, Live!')라는 파일은 1990년대 Roland가 자사의 GS 음원을 홍보하기 위해 배포했던 전설적인 번들 데모라고 한다. 물론 나는 바로 어제까지 ALLSTARS.MID라는 곡을 전혀 알지 못하였다. 웹 기반의 재생기인 Chip Player JS에서 이를 감상해 보자(GitHub).

DOS 화면을 연상시키는 고풍스런 재생기 Chip Player JS. Visualizer 기능은 실로 놀랍다.

인터넷을 뒤져 보면 이렇게 특정 기기의 성능을 한껏 자랑하기 위해 만든 MIDI 파일이나 유명한 대중음악을 MIDI로 옮긴 것들이 많다. 이를 나의 ADX 플랫폼에서 분석하면 재사용 가능한 non-redundant 드럼 패턴으로 축약할 수 있을 것으로 기대하였다. MIDI 파일의 표현력은 매우 우수하지만, 목적에 맞는 정보만 남기고 나머지는 과감히 생략하는 추상화(abstraction) 과정이 필요하다.

ADX 플랫폼에서는 크게 세 가지의 추상화가 이루어진다.

  • Instrument abstraction - 수십 종의 GM 드럼 악기를 12개의 대표 슬롯으로 통합한다.
  • Temporal abstraction - 자유로운 MIDI 타이밍을 16-step, 8T(T=triplet), 16T 등의 subdivision grid로 정규화한다.
  • Velocity abstraction - 1~127의 연속적인 velocity를 rest 포함 4단계 accent(6단계는 검토 중)로 변환한다.

추상화를 통해 무엇을 얻었는가? 패턴 비교가 쉬워지고, 사람이 쉽게 읽을 수 있으며, 저장 공간도 줄어들었다. 또한 검색과 분류가 쉬워졌다. 그러나 이를 통해 잃은 것도 있다. 연주의 미세한 타이밍, 세밀한 다이내믹(velocity 0~127), 악기의 개성 등이다.

MIDI 파일로부터 드럼 채널을 추출한 뒤, 패턴을 분석하여 그 결과를 제공하는 PatternLab은 하루가 다르게 발전하고 있다. 이를 이용하여 몇 가지 MIDI 파일을 분석하면서 새로운 사실을 많이 발견하였다. 다음은 ALLSTARS.MID를 PatternLab으로 분석한 보고서의 일부이다. 대부분의 note는 파란색을 띠고 있지만, 그리드에서 벗어나거나 ghost note(현재로서는 기준 velocity 이하인 것을 후보로 판정)인 경우 다른 색으로 표시하였다. 왼쪽 패턴 카드의 노랑-주황-빨강으로 표시된 tom 타격에 주목하라.

16 subdivision에 딱 맞게 tom을 치면 도저히 그 느낌이 나지 않는다.

자체 정의한 ORN 파일을 쓰면 거의 모든 예외적인 노트를 수용하여 재생하도록 만들 수 있다. 그러나 ALLSTARS.MID를 분석하면서 예외적인 상황이 너무나 많음을 확인하였다. 이 MIDI 파일은 패턴 재사용 목적이 아니라 GS 음원의 우수함과 표현력을 최대한으로 끌어내기 위해 만든 것이니 당연히 그럴 수 있다. 하지만 이를 과도하게 추상화하면 작곡가/연주가의 의도를 훼손하기 쉽다. 그렇다고 해서 MIDI 파일 수준의 세부적인 정보를 그대로 유지한다면 ADX 플랫폼의 단순함이라는 최대 장점이 사라진다.

많은 사람들이 추상화를 "정보 손실"이라고 생각한다. 그러나 소프트웨어 공학에서 추상화는 복잡성을 줄이는 가장 강력한 도구라고 한다. ADX 생태계는 실제 연주가 아니라 음악이라는 정보를 전달하기 위해 만든 것이다. 악보가 하나라고 해서 모든 사람이 다 같은 스타일로 연주하는 것은 아니다.

추상화를 통해 정보를 일부 잃었지만 그 대가로 패턴의 비교, 분석, 검색, 교환, 재생이라는 새로운 가능성을 얻었다. 잃은 정보 중 정말 필요한 것은 ORN이라는 sidecar 파일을 통해서 되살릴 수 있다. 

추상화는 단순화가 아니라 목적에 맞게 정보를 재구성하는 과정이다.

그리고 ALLSTARS.MID는 학습용으로는 아주 좋으나, 재사용 목적의 패턴 추출용으로는 너무 까다롭고 복잡한 드럼 연주 정보를 갖고 있다.


댓글 없음: