# BPM & Key Finder

> MP3 や WAV をまとめて放り込むと、曲ごとに BPM（0.1 刻み）、キー、Camelot と Open Key のコード、確信度、次点のキーを一覧表示。タップで修正、CSV 書き出し。

- URL: https://bytescope.dev/ja/bpm-key-finder/
- Locale: ja · Also: [en](https://bytescope.dev/en/bpm-key-finder.md) · [zh-Hant](https://bytescope.dev/zh-Hant/bpm-key-finder.md)
- Runs: ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

セットを組む DJ は全トラックのテンポと Camelot コードを知りたい。歌い手やカバーバンドは、どこに移調するか決める前に原曲のキーを知りたい。ランニング用プレイリストを作る人は、170 BPM を保つ曲を集めたい。このページはそうした問いに、たくさんのファイルについて一度に答えます。MP3、M4A、WAV、OGG、FLAC を放り込むと——何曲まとめてでも構いません——ファイル名、長さ、0.1 刻みの BPM、確信度、キー（たとえば A minor）、その Camelot コード（8A）と Open Key コード（1m）、そして次点のキーが表に埋まっていきます。ファイルはブラウザの中の Web Worker で一つずつ解析され、どれもアップロードされません。だから最初の結果は、転送を待たずに最初のファイルがデコードされた時点で現れます。

### テンポの求め方

初期設定では各トラックの真ん中の 60 秒を解析します。ビートがなかったり曖昧だったりしがちなイントロとアウトロを飛ばすためで、トラック全体に切り替えることもできます。音声はまずスペクトラルフラックスのオンセット包絡線——音に何か新しいことが起きるたびに山ができる曲線——に変換され、その自己相関から、オンセットの間隔のうちどれが最も強く繰り返しているかが分かります。候補が複数あるときは 120 BPM 付近を好む事前分布で決着をつけ、最後に細かい探索で 60〜200 BPM の範囲内で 0.1 BPM まで値を詰めます。倍テンポと半テンポは本質的に曖昧です。174 BPM のドラムンベースには 87 の脈も確かに存在します。そのため両方の読みが強いときは、答えが一つであるふりをせず、表に両方の数字（87 / 174）を出します。

### キーの求め方

解析区間は 12 ビンのクロマ——12 の音名それぞれにどれだけエネルギーが乗っているかを時間平均したもの——に縮約されます。このプロファイルを Krumhansl–Kessler（1982）の 24 のキープロファイル（長調・短調それぞれ 12 ずつ）と相関させ、最もよく一致したものが表示されるキーです。二番目の候補も表示するのは、いちばん多い取り違えが平行調どうしだからです。C major と A minor は同じ七つの音を共有していて、クロマの平均だけでは区別がつかないことがよくあります。次点が平行調で、スコアも一位に近いなら、曲がどの音に落ち着くかを聞いてからどちらかを信じてください。Camelot コードは Mixed In Key で使われている慣例に従います。番号が隣り合うトラック、または同じ番号の A と B は和声的に混ざります。Open Key は他のソフトで使われる同等の表記です。

### テンポを手で直す

検出が外れたときは、タップボタンかスペースキーを音楽に合わせて 4 回以上叩いてください。直近 8 回のタップの平均が、その行の BPM を置き換えます。倍テンポ・半テンポの読みを解決したり、ビートがとても弱い曲のテンポを決めたりする、いちばん手早い方法です。表が整ったら、表計算向けに CSV で書き出すか JSON としてコピーできます。どちらにもファイル名、長さ、BPM、確信度、キー、Camelot と Open Key のコード、次点のキーが含まれます。

### 数字が当てにならなくなるところ

検出器は、1 トラックにテンポが一つ、キーが一つあると仮定しています。途中でテンポが変わる曲、だんだん速くなるライブ録音、ルバートで演奏されるクラシックは、一つの平均値と低い確信度になります。その低い確信度こそが「自分の耳で聞いて」という合図です。モーダルな曲、無調の曲、転調の多い曲は 24 の長調・短調プロファイルにうまく当てはまらず、途中で転調するトラックには全体で一つのキーが付きます。転調の追跡は試みていません。確信度の列は正直に受け取ってください。高ければビートと調中心がはっきりしていたということで、低ければその曲には一つのはっきりした答えがなかったということです。

## Limits

Does not upload songs, separate vocals or follow tempo or key changes within a song; it reports one average tempo and one key per track.

## FAQ

### 曲はアップロードされますか？

されません。各ファイルはブラウザの中の Web Worker がデコードして解析します。サーバーには何も送られませんし、このページにサーバーはありません。だから転送を待つこともなく、まとめて入れた曲はあなたのマシンの上で一曲ずつ順に解析されます。ファイルについても結果についても、何も記録しません。

### BPM が予想のちょうど半分、または倍になるのはなぜ？

どちらも本物だからです。オンセット検出は繰り返す脈を見つけますが、87 BPM で繰り返す脈は 174 でも同じくらいよく繰り返します。聴き手がどちらをテンポと呼ぶかはジャンルとノリ次第で、アルゴリズムには知りようがありません。このページは選ばざるを得ないときは 120 BPM 付近を優先し、二つの読みの強さが近いときは両方の数字を出します。欲しいほうが表示されていなければ、自分でテンポをタップしてください。ボタンかスペースキーを 4 回以上叩けば、その行の値が置き換わります。

### C major と出たけれど、曲は A minor です。間違い？

間違いとは限りません。次点のキーを表示しているのはまさにそのためです。C major と A minor は同じ七つの音を共有しているので、1 分間で平均したクロマプロファイルは両方ほぼ同じに見えます。Krumhansl–Kessler のプロファイルは主音と五度に重みを置いていて、たいていの場合はこれで区別できますが、常にではありません。二番目の候補が平行調でスコアも近いときは、フレーズの終わりで曲がどの音に落ち着くかを聞いてください。DJ のミックスにはほとんど影響しません。8B と 8A は Camelot ホイールで隣どうしで、一緒に混ざります。

### Camelot と Open Key のコードは何を意味していますか？

同じ考え方の二つの表記です。24 のキーを輪の上に並べて、相性のいいキーが隣に来るようにしたものです。Mixed In Key が広めた Camelot 方式では、キーに 1〜12 の番号を振り、短調を A、長調を B で表します。番号が一つ違いのトラック、または同じ番号の A と B は多くの音を共有し、ぶつからずに混ざります。Open Key は Traktor などのソフトで使われ、1〜12 に短調の m と長調の d を付け、輪の回転の仕方が異なります。A minor は Camelot で 8A、Open Key で 1m です。

### なぜ真ん中の 60 秒だけを解析するのですか？

イントロとアウトロがいちばん判断を狂わせやすいからです。ビートのないイントロ、フェードアウト、ライブ録音の拍手、語りのアウトロは、どれも曲を代表していないのにオンセットのパターンとクロマを弱めます。真ん中の 1 分はたいていサビか主要なグルーヴです。1〜2 分より短い曲、テンポの変化が疑われる曲、真ん中がたまたまブレイクダウンの曲では、トラック全体の解析に切り替えてください。

### 確信度の数字は何を表していますか？

その曲がどれだけはっきり一つの答えを出したか、です。高い値はビートと調中心が明白だったことを、低い値はビートが弱いか揺れているか、テンポが変わるか、24 の長調・短調プロファイルに合わない調性だったことを意味します。クラシック、ルバート、モーダル、無調の音楽はよくここに入ります。曲の良し悪しではなく、検出器がどれだけ確信しているかの尺度で、低い値は「自分の耳で確かめて」という合図です。

### 途中でテンポやキーが変わる曲は追えますか？

まだできません。このページが出すのは 1 トラックにテンポ一つ、キー一つです。変化するテンポは平均され、転調する曲は解析区間で優勢だった調中心のほうが選ばれ、どちらも確信度は下がります。転調すると分かっている曲は、トラック全体の設定で解析して全体としてどのキーが勝つかを見て、次点のキーは間違いではなく「もう一方の部分」のヒントとして受け取ってください。

## Related tools

- [Extract Audio from Video](https://bytescope.dev/ja/extract-audio.md) — 動画ファイルから音声トラックを取り出す →
