Tap BPM은 어떻게 계산되나

기본 계산은 나눗셈 하나

BPM은 Beats Per Minute, 1분당 박의 수입니다. 120 BPM은 1분에 120번이므로 박 사이 간격이 0.5초라는 뜻입니다. 거꾸로 간격을 알면 BPM은 바로 나옵니다. 간격이 0.5초면 60 ÷ 0.5 = 120입니다.

그러니 두 번만 두드려도 숫자는 나옵니다. 문제는 그 숫자를 믿을 수 있느냐입니다. 사람이 두 번 두드린 간격은 실제 곡의 박 간격과 수십 밀리초씩 차이가 납니다. 120 BPM 곡에서 30밀리초가 어긋나면 결과는 113이나 128로 나옵니다.

왜 이동 평균을 쓰는가

그래서 한 번의 간격이 아니라 여러 간격을 모아 평균을 냅니다. 이 사이트는 최근 여덟 번의 간격을 유지하고 그 평균으로 BPM을 계산합니다. 두드릴수록 값이 안정되는 이유입니다.

여덟 개로 제한하는 데에도 이유가 있습니다. 모든 간격을 다 쓰면 처음의 어색한 몇 번이 끝까지 남아 값을 끌어당깁니다. 반대로 최근 것만 쓰면 손이 안정된 뒤의 상태를 반영하면서도, 곡의 템포가 실제로 바뀌었을 때 따라갈 수 있습니다.

여기서 이동 평균이라는 말이 나옵니다. 창을 하나씩 밀면서 그 안의 값만 평균한다는 뜻입니다. 최근 여덟 번이라는 창이 계속 앞으로 움직이므로, 오래된 타격은 자연스럽게 잊힙니다.

이상치 하나가 평균을 망친다

평균에는 약점이 있습니다. 손이 미끄러져 한 번 크게 어긋나면 그 하나가 평균 전체를 끌고 갑니다. 500밀리초 간격이 일곱 개 있는데 하나가 1200밀리초라면, 평균은 588이 되고 BPM은 120이 아니라 102로 나옵니다.

그래서 평균을 내기 전에 한 단계를 더 둡니다. 최근 간격들의 중앙값을 구하고, 그 값에서 40% 넘게 벗어난 간격은 실수로 보고 계산에서 제외합니다. 중앙값은 극단값에 끌려가지 않으므로 기준으로 삼기에 적합합니다. 표본이 두세 개뿐일 때는 거를 것이 없으므로 이 단계를 건너뜁니다.

3초 이상 쉬면 아예 처음부터 다시 세는 것도 같은 이유입니다. 곡이 바뀌었거나 손을 멈춘 것인데, 그 긴 간격을 평균에 넣으면 값이 통째로 망가집니다.

왜 시각을 재는 시계가 중요한가

타격 시각은 벽시계가 아니라 단조 증가하는 고해상도 시계로 기록합니다. 일반적인 시스템 시계는 네트워크 시각 동기화 때문에 조정될 수 있고, 드물게는 뒤로 갈 수도 있습니다. 그러면 간격이 음수가 나오는 황당한 상황이 생깁니다.

브라우저가 제공하는 고해상도 시계는 페이지가 열린 시점부터 단조 증가하며 밀리초 이하의 해상도를 가집니다. 간격을 재는 용도로는 이쪽이 유일한 선택입니다.

함께 읽으면 좋은 글

  • 메트로놈 연습법 기초

    클릭에 맞추려 애쓰는 연습에서, 어긋나는 자리를 찾아내는 연습으로 바꾸는 법.

    자세히 읽기
  • 녹음용 클릭 트랙 만들기

    클릭은 편집을 쉽게 해 주지만, 잘못 쓰면 연주에서 생기를 뺏습니다.

    자세히 읽기
  • 리듬감은 타고나는가

    박자를 듣는 것은 수동적인 감각이 아니라 계속되는 예측입니다.

    자세히 읽기

← 글 목록으로 돌아가기