MIDI 패턴 분석: 박자표·BPM·트리플렛 판별 방법
이 문서는 MIDI 파일로부터 박자표(Time Signature), 템포(BPM), 그리고 트리플렛(triplet) 구조 여부를 판별하는 방법을 설명한다. 이는 일반적인 MIDI 표준과, Ardule 프로젝트에서 수백 개의 드럼 패턴을 처리하면서 축적된 실전 경험을 바탕으로 정리되었다.
MIDI 파일(Type 0 / Type 1)에는 다음의 두 종류 정보가 포함된다.
Ardule에서 분석한 박자표, BPM, 트리플렛 여부는 모두 이 두 가지로부터 계산된다.
PPQN(Pulses Per Quarter Note)과 TPQN(Tick Per Quarter Note)은 같은 의미로 쓰인다. 전통적인 MIDI beat clock은 24 PPQN이었으나 요즘은 960 PPQN 이상의 더 높은 해상도를 지원하는 최신 시퀀서도 있다. 아주 낮은 해상도로 음악을 만들어도 된다면 4 PPQN(16분음표에 클록 펄스 하나)도 가능하다.
가장 정확한 박자표는 FF 58 메타 이벤트를 통해 얻을 수 있다.
FF 58 04 nn dd cc bb nn = 분자 cc = 메트로놈 클릭 간격(보통 24) dd = 분모 (2 → 4분음표, 3 → 8분음표) 예: [FF 58 04] 04 02 [18 08] → 4/4 박자
파일에 이 이벤트가 존재하면 그대로 사용하는 것이 가장 신뢰도가 높다.
드럼 패턴이나 루프 파일은 FF 58 메타 이벤트를 생략하는 경우가 많다. 이 경우에는 통계적/구조적 방법으로 추정해야 한다.
Ardule에서 실제 수집한 대부분의 드럼 패턴은 4/4이므로, 특별한 근거가 없을 경우 기본값을 4/4로 간주하는 실무적 접근을 사용한다.
FF 51 이벤트는 1/4 노트의 길이(μs)를 제공한다.
FF 51 03 tt tt tt
tt tt tt = 1 quarter note duration (in microseconds)
(예) [FF 51 03] 07 A1 20 = 7A120(hex) = 500,000 μs = 0.5초
→ 1분에 120개 → BPM 120
BPM 계산식: BPM = 60,000,000 / (마이크로초_per_quarter)
(예) 500000 μs per quarter → BPM 120
드럼 루프는 일반적으로 템포가 하나만 존재하므로 첫 값을 그대로 사용해도 충분하다.
FF 51이 없으면:
트리플렛 여부는 MIDI에 직접 저장되지 않는다. 따라서 delta-time 통계 분석으로 판별해야 하며, 이는 Ardule의 ADT/ADP 변환기에서 핵심 기능이었다.
이 방식은 TPQN이 달라져도 안정적이고, 사람이 직접 듣고 판단한 결과와도 상당히 일치한다.
항목 판별 방법 ------------------------ ---------------------------------------------- 박자표(Time Signature) FF 58 → 없으면 구조 분석으로 추정 템포(BPM) FF 51(가장 정확) 트리플렛 구조 delta-time 비율 분석(Ardule 가중치 알고리즘)
Ardule 프로젝트에서 이 방식은 드럼 MIDI 패턴 수백 개를 처리하며 안정성과 정확성을 검증한 방법이다.
이 문서는 정해영의 아이디어와 지시에 따라 AI 도구(ChatGPT)의 도움을 받아 작성되었습니다. 본 문서는 Creative Commons CC0 1.0 Universal Public Domain Dedication에 따라 누구나 자유롭게 복제, 수정, 배포, 활용할 수 있으며, 출처 표시도 필요하지 않습니다. 다만, 내용의 정확성은 보장되지 않았으며, 정해영은 본 문서의 내용에 대해 어떠한 법적 책임도 지지 않습니다.
Authorship and Usage Notice
This document was written with the assistance of an AI tool (ChatGPT), based on the ideas and direction provided by Haeyoung Jeong. It is released under the Creative Commons CC0 1.0 Universal Public Domain Dedication. Anyone may freely copy, modify, distribute, and use the content, with no requirement for attribution. However, the accuracy of the content is not guaranteed, and Haeyoung Jeong assumes no legal responsibility for its use.