분석에 사용한 데이터의 분량이 별로 많지 않아서 빅데이터라고 하기에는 민망하다. 무료 MIDI 드럼 파일 제공 웹사이트에서 80개(8개 장르 x 10개)의 MIDI 파일을 다운로드하여 어떤 타악기 종류가 쓰였는지 조사해 보았다. 표준적인 드럼세트의 각 파트가 대부분이지만, 라틴 계열의 리듬은 그렇지 않다. 분석에 쓰인 총 마디의 수는 1,184개였다. 분석 및 결과의 시각화에는 당연히 챗GPT가 쓰였다.
- Latin (약 120 BPM) → 아고고·카우벨 같은 라틴 퍼커션이 두드러짐
- Rock (~110 BPM) → 킥·스네어·하이햇 집중
- Blues (~90 BPM) → 라이드 심벌 중심, 상대적으로 느림
- Dance (~125 BPM) → 하이햇·탐버린·특수 노트 풍부
Rock 장르의 경우 총 13개 정도의 노트가 전부였는데, 장르를 확장하니 55개로 늘어났다. 타악기 연주 정보라서 노트의 길이는 별로 의미가 없다. Rock 장르 파일을 분석하였을 때 표준 GM 드럼 맵에 정의된 것은 10개였다. 왜 이런 분석을 하고 있는가? 아두이노 나노를 응용하여 만드는 Nano Ardule MIDI Controller에서 드럼 머신 기능을 추가하기 위함이다. 당초 계획은 SD카드에 저장한 짧은 MIDI 파일을 반복 재생하는 것이었으나, 구현 과정에서 잦은 에러에 직면하였기에 완전히 다른 방식을 택하기로 했다. 즉, 2마디 단위의 드럼 패턴을 MIDI 데이터가 아니라 스텝 형태로 전환하여 PROGMEM 또는 EEPROM에 저장하기로 한 것이다. 만약 Rock을 기준으로 하여 드럼 소리를 결정한다면 12비트가 필요하고, 여기에 4단계 정도의 액센트 정보를 넣어야 한다.
한 박자에 몇 스텝이면 충분한가? 최소 간격이 16분음표라고 가정하면 4/4 박자 한 마디에 16스텝(4 x 4)이 필요하다. 그런데 빈도가 높지는 않지만 스윙이나 트리플렛을 감안하면 1박자를 12스텝으로 분할해야 한다. 이 경우에 악기 정보까지 포함하면 대략 192B/패턴의 메모리가 필요하다. 1KB에 다섯 패턴 정도를 저장할 수 있다. 메모리 용량이 조금 더 큰 아두이노 나노 에브리를 사용한다고 해도 PROGMEM에 20KB를 확보하기도 힘들 터인데... 어쨌든 이를 실현하려 해도 많은 고민이 필요하다.
장르에 따라 사용하는 타악기의 종류가 무척 다르다. 10~13개 정도의 타악기 소리로 감당할 수 있는 것은 rock 정도. |
드럼 패턴에 따라서는 GM kit이 아닌 다른 것을 적용해야 할 것이다. 다음은 Cakewalk TTS-1에서 설정 가능한 Roland GS 계열의 드럼 킷 아홉 가지.
오랜만에 Cakewalk by BandLab을 실행하였더니 조만간 Cakewalk Sonar(유료)로 바뀐다고 한다. 이제 무료 시절은 끝났는가... 무료 서비스로는 Cakewalk Next라는 것이 있다고 하니 알아보아야 되겠다. |
챗GPT를 사용하면 드럼 MID 파일을 입력하면 두 마디 단위로 쪼개어 이런 '인코딩' 체계에 맞추어 재정리해주는 파이썬 스크립트도 만들어 낼 수 있다. 심지어 드럼패턴 MIDI 파일의 제목(장르)과 실제 사용한 노트를 이용하여 가장 어울리는 드럼킷을 제안해 보라고 했더니 다음과 같은 답변을 주었다.
🔹 정리
-
Rock, Jazz, Blues, Folk → GS의 Rock Kit, Jazz Kit, Brush Kit 등이 더 적절.
-
Latin, World, Ethnic → GS의 Latin Kit, Ethnic Percussion Kit.
-
Dance, Contemporary → GM Standard Kit로 재생하면 “어쿠스틱 드럼” 느낌인데, 실제로는 GS Electronic Kit/TR-808 Kit 이 가장 적절.
👉 즉, 네. 지금 데이터 중에는 확실히 TR-808 / Electronic Kit이 어울리는 패턴이 있습니다.
특히 Dance/Contemporary 폴더 안에 있는 파일들이 그래요.
원하시면, 제가 Dance/Contemporary 계열 파일만 따로 추려서 → TR-808/Electronic Kit 추천 매핑을 표로 정리해 드릴까요?
댓글 없음:
댓글 쓰기