음악 작업 가이드

곡의 BPM과 키 확인 방법 — 분석기 정확도 실측

음원 파일을 BPM·키 분석기에 넣으면 브라우저에서 템포와 조를 추정합니다. 정답을 아는 합성 음원 14개로 시험한 결과 BPM은 12개가 ±1 이내였고 2개는 실제의 절반·두 배로 나왔으며, 키는 13개 중 12개가 맞았습니다(2026-10-01 측정).

작성 Chaez · 발행 · 최종 업데이트 · 데이터 기준일

BPM과 키는 어떤 순서로 확인하나

  • BPM·키 분석기에서 음원 파일(MP3, WAV, M4A, FLAC 등)을 선택합니다. 파일은 기기 안에서만 분석됩니다.
  • 분석이 끝나면 BPM과 키(예: D minor)가 표시됩니다.
  • 표시된 BPM이 곡의 느낌보다 두 배 빠르거나 절반으로 느리면, 메트로놈의 탭 템포로 박을 직접 두드려 확인합니다.
  • 연습에 쓸 때는 연습 플레이어에서 속도와 키를 조절합니다.

분석 결과는 얼마나 정확한가

템포와 키를 알고 만든 합성 음원 14개를 분석기와 같은 알고리즘·설정으로 분석한 결과, BPM은 10개가 정확히 일치하고 2개가 1 차이, 2개가 절반 또는 두 배였습니다. 키가 있는 13개 중 12개는 조와 장·단조까지 맞았습니다(2026-10-01 측정).

합성 음원별 분석 결과, 2026-10-01 측정
시험 음원실제검출판정
ToneNook 데모 아르페지오 (8초)120 BPM · C major120 · C major모두 정확
밴드 루프 60 BPM60 · C major120 · C majorBPM 두 배
밴드 루프 70 BPM70 · A minor70 · A minor모두 정확
밴드 루프 90 BPM90 · G major90 · G major모두 정확
자연단음계 진행 (Am–F–G–Am)100 · A minor100 · A minor모두 정확
밴드 루프 120 BPM120 · C major120 · C major모두 정확
밴드 루프 128 BPM (30초)128 · D minor128 · D minor모두 정확
같은 루프 앞 15초128 · D minor128 · D minor모두 정확
같은 루프 앞 8초128 · D minor129 · D minorBPM ±1
같은 루프 앞 4초128 · D minor129 · G minorBPM ±1 · 키 틀림
밴드 루프 140 BPM140 · E minor140 · E minor모두 정확
밴드 루프 174 BPM174 · A# major87 · Bb majorBPM 절반 (키는 같은 음)
코드만, 드럼 없음96 · G major96 · G major모두 정확
드럼만, 화음 없음100 · 키 없음100 · C major키 값은 의미 없음

합성 음원은 박과 화음이 실제 녹음보다 뚜렷하므로, 이 결과는 분석기가 잘 동작하는 조건에서의 정확도입니다. 템포가 바뀌는 곡, 박이 흐릿한 곡, 조바꿈이 있는 곡에서는 더 자주 틀릴 수 있습니다.

BPM이 절반이나 두 배로 나오는 이유는

60 BPM 음원은 120으로, 174 BPM 음원은 87로 검출됐습니다(2026-10-01 측정). 박을 세는 단위가 한 단계 다르게 잡힌 것으로, 템포 추정에서 흔한 오류입니다. 두 결과 모두 실제 템포와 정확히 2배 관계이므로 박 위치는 맞고 단위만 다릅니다.

아주 느린 곡(60 BPM 근처)이나 빠른 곡(170 BPM 이상)은 결과를 2로 곱하거나 나눈 값과 비교해 보세요. 메트로놈 탭 템포로 직접 두드린 값과 가까운 쪽이 실제 템포입니다.

키가 틀리는 경우는

128 BPM D단조 루프에서 앞 4초만 분석하자 G minor로 나왔고, 8초·15초·30초는 D minor로 맞았습니다(2026-10-01 측정). 4초 구간에는 코드 진행 Dm–Gm–A–Dm 중 앞의 두 코드만 들어 있었기 때문입니다. 짧은 구간보다 코드 진행이 한 바퀴 이상 들어간 구간을 분석해야 합니다.

드럼만 있는 음원도 C major라는 키를 출력했습니다. 분석기는 화음이 없어도 가장 가까운 키를 고르므로, 조성이 없는 음원의 키 값은 무시해야 합니다. 또 A#과 Bb처럼 이름이 달라도 같은 음인 경우가 있습니다(이명동음).

측정 방법

  • 알고리즘: 분석기와 같은 Essentia 함수와 설정을 썼습니다. 템포는 RhythmExtractor2013(multifeature, 40–208 BPM), 키는 KeyExtractor(bgate 프로파일)입니다. 분석기는 essentia.js 0.1.3을 브라우저에서 실행하고, 측정은 같은 패키지를 Node.js에서 실행했습니다.
  • 시험 음원: 모두 직접 합성했습니다. 밴드 루프는 매 박 킥, 2·4박 스네어, 8분음 하이햇, 마디마다 바뀌는 코드와 근음 베이스로 만들었습니다. 장조는 I–V–vi–IV, 단조는 i–iv–V–i 진행이며 길이는 30초입니다.
  • 판정: BPM은 정답과 같으면 정확, 1 차이는 ±1, 정확히 2배·절반은 두 배·절반으로 분류했습니다. 키는 조와 장·단조가 모두 같을 때만 정확으로 보고, A#과 Bb 같은 이명동음은 같은 키로 봤습니다.
  • 녹음된 실제 곡은 시험하지 않았습니다. 실제 곡의 정확도는 이 결과보다 낮을 수 있습니다.

자주 묻는 질문

몇 초 분량을 분석해야 정확한가요?
2026-10-01 측정에서 128 BPM 루프는 15초와 30초에서 BPM과 키가 모두 맞았고, 4초에서는 키가 틀렸습니다. 코드 진행이 한 바퀴 이상 들어간 구간을 넣으세요.
분석된 BPM이 곡의 느낌보다 두 배 빨라요. 왜 그런가요?
박을 세는 단위가 한 단계 작게 잡힌 경우입니다. 측정에서 60 BPM 음원이 120으로 나왔습니다. 결과를 2로 나눈 값을 메트로놈 탭 템포로 두드린 값과 비교하세요.
A#과 Bb은 다른 키인가요?
아니요. 같은 음을 다르게 부르는 이명동음입니다. 174 BPM A# major 음원은 Bb major로 표시됐고, 같은 키입니다.

참고 자료