2026년 8월 18일 화요일

깨지지 않는 원칙은 없다

오늘도 '드럼 패턴학' 이야기를 조금 더 해보려 한다. 그저께까지 만든 분석용 스크립트가 완벽하고, 그것을 이용해서 어제까지 매만진 패턴은 다시는 고칠 일이 없을 것이라고 생각했었다. 그러나 그러한 기대는 몇 시간 가지 않는다. 새로운 아이디어가 계속 샘솟는 것이 아니라 바라볼수록 부끄러운 구석이 눈에 뜨인다. 

"도저히 이대로 놔 둘 수가 없다!"

그래서 스크립트를 고치고, 데이터 뭉치를 다시 처리하기를 반복한다. 스크립트는 오류가 줄어들고 새로운 기능을 품는 것으로 끝나지 않고 아예 인수(argument) 체계가 다시 세워진다. 예를 들어 작업 대상 파일 하나를 인수로 제공하였다가 이제는 아예 디렉토리를 통째로 제공하는 것이다. 이렇게 함으로써 파워셸 수준에서 반복문을 돌릴 필요가 없게 되었다.

드럼 패턴 분석 작업의 제1원칙은 MIDI 원본 데이터는 손을 대지 않는 것이었다. 분할 후 추상화를 거치지만 타이밍 정보는 절대 손을 대지 않으려고 하였다. 특히 드럼 머신용 패턴이라는 이름으로 돌아다니는 MIDI 파일은 완벽할 것으로 기대했었다. 그러나 꼭 그렇지만도 않았다. 노트 단위로 그리드에서 벗어나는 것이 있어서 눈물을 머금고 tick을 가감하여 그리드에 맞추는 일이 벌어졌다. 

Flam을 처리하는 일은 한층 더 어려웠다. 1 마디 16 스텝, 즉 16분음표 간격으로 노트를 나열하는 체계에서 만나는 grace note는 거의 대부분 스텝을 32로 세분하면 정상적인 음표처럼 취급할 수 있다.


그러나 이렇게 패턴을 잘게 나누니 그리드 위에 표시하면 장식음 + 주 음표의 관계가 선명하게 드러나지 않는다. PDF 파일로 돌아다니는 원전이 있어서 'F'로 표기된 flam을 명확히 파악할 수 있었고, 스크립트 수준에서 이를 자동으로 검출하게 만드느라 무척 애를 먹었다. 

드럼 패턴 책자를 옮겼다는 MIDI 파일도 혹시 '제작자'의 실수가 있었던 것은 아닐까하는 생각이 들 때가 있다. 위에서 보인 그림 중 왼쪽의 악기명을 살펴보면 심벌에 해당하는 것의 약어는 CY-C이다. Crash 심벌이라는 의심이 들지만, 실제 MIDI 파일엣는 ride로 바뀌어 있었다. 마디 시작 위치에서 한번 타격하는 것은 ride보다 crash가 더 어울린다. 하지만 그렇다고 하여 이를 MIDI로 'transcription'한 결과물이 명백히 틀렸다고 볼 수도 없는 노릇이 아닌가. 그래서 그냥 두기로 했다.

원칙을 잘 수립하고, 침습 또는 비침습척 처리를 하는 경계를 잘 기록해 두며, 모든 것을 자동화에 맡기지 말고 반드시 눈이나 귀로 확인하는 버릇을 들이는 것. 그것이 신뢰할 수 있는 데이터를 만드는 과정이다.

댓글 없음: