# rekordboxのプレイリストをKey + BPM順に並べる方法

**rekordboxでは、KeyとBPMの両方を使って並べ替えることはできません**。rekordboxもプレーヤーも一度に使える列は1つだけで、rekordboxの「曲順をリナンバする」でプレイリストに保存できるのも1列分の並びです。Key→BPMの並びは、rekordboxだけでは一度に保存できません。**Bake'n DeckのSort**は、書き出した`collection.xml`の中で、プレイリストの曲順そのものを**Key昇順（1A→12B）、同じKeyの中はBPM昇順**に書き換えます。並び順が表示ではなくプレイリスト自体に入るので、CDJは標準の表示のままその順番で再生します。

## 単一列ソートとの違い

rekordboxもCDJ-3000 / XDJ-1000MK2も、Key*か*BPMのどちらか一方でしか並べ替えられません。同じプレイリストでも、並べ方によって結果はこう変わります。

| ソート方法 | Keyの並び | 同じKey内のBPM |
| --- | --- | --- |
| Keyでソート（単一列） | ✓ そろう | ✗ プレイリストの登録順のまま |
| BPMでソート（単一列） | ✗ Keyがバラバラ | ✓ そろうがKeyのまとまりは消える |
| Bake'n Deck Sort（Key → BPM） | ✓ そろう | ✓ 昇順 |

## 6曲で見る3つのソート

6曲のプレイリストで比べてみます。登録順、つまりプレイリストに保存されている順番は次のとおりです。

| # | 曲 | Key | BPM |
| --- | --- | --- | --- |
| 1 | A | 1A | 130 |
| 2 | B | 2A | 124 |
| 3 | C | 1A | 124 |
| 4 | D | 2B | 130 |
| 5 | E | 2A | 128 |
| 6 | F | 2B | 124 |

同じ6曲を3通りの方法で並べると、次のようになります。

| # | Keyでソート | BPMでソート | Bake'n Deck（Key → BPM） |
| --- | --- | --- | --- |
| 1 | A · 1A · 130 | C · 1A · 124 | C · 1A · 124 |
| 2 | C · 1A · 124 | B · 2A · 124 | A · 1A · 130 |
| 3 | B · 2A · 124 | F · 2B · 124 | B · 2A · 124 |
| 4 | E · 2A · 128 | E · 2A · 128 | E · 2A · 128 |
| 5 | D · 2B · 130 | A · 1A · 130 | F · 2B · 124 |
| 6 | F · 2B · 124 | D · 2B · 130 | D · 2B · 130 |

Keyでソートすると、`1A`と`2B`の中でBPMが130 → 124と下がり、ウォームアップとは逆向きになります。BPMでソートすると、Keyが`1A → 2A → 2B → 2A → 1A → 2B`と行ったり来たりします。Keyの昇順を保ったまま、各Keyの中でBPMも上がっていくのは3列目だけです。

Bake'n DeckのSort画面。プレイリスト一覧と、KeyとBPMの列が並ぶ並べ替え後のプレビュー

書き込む前にこの並びを確認できます

## rekordboxのプレイリストをKey + BPM順にする手順

1. **コレクションをXMLで書き出す**
「ファイル」→「コレクションをxml形式でエクスポート」で書き出します。保存先は毎回同じパスにしてください（例：~/Music/rekordbox/collection.xml）。
2. **Sortを実行する**
Macアプリでは、SORTの画面で全プレイリストをその場で並べ替えます。1つのプレイリストの新しい順番を書き込む前に確かめるなら、PLAYLISTのステップを使います。CLIでは「baken rbsort collection.xml」を実行すると、全プレイリストがその場で並べ替わります。
3. **読み込み用ライブラリに一度だけ指定する**
「環境設定」→「詳細」→「Database」→「rekordbox xml」→「読み込み用ライブラリ」で同じファイルを選びます。設定は最初の一度だけです。
4. **rekordboxを再起動する**
左サイドバーのrekordbox xmlツリーに、Playlistsと同じ構成の並べ替え済みプレイリストが現れます。
5. **USBへ書き出す**
rekordbox xmlツリーからプレイリストをPlaylistsへドラッグし、EXPORTモードで右クリックして「プレイリストをエクスポート」を選びます。CDJはその順番で再生します。

**見当たらないときは**サイドバーのツリーを切り替えてください。並べ替え済みのプレイリストは`rekordbox xml`ツリーの中だけにあり、通常の`Playlists`には表示されません。

```
# Terminal — rbsort
$ baken rbsort ~/Music/rekordbox/collection.xml
✓ Sorted 12 playlists (1480 tracks) by Key+BPM → ~/Music/rekordbox/collection.xml
$ baken rbsort ~/Music/rekordbox/collection.xml --playlist "Sets/Friday"
✓ Sorted 124 tracks in 'Sets/Friday' by Key+BPM → ~/Music/rekordbox/collection.xml
```

## 並び順のルール

- **1番目の基準**：Keyの昇順（`1A → 1B → 2A → 2B → … → 12A → 12B`）
- **2番目の基準**：同じKeyの中でBPMの昇順
- KeyがAlphanumeric表記（`8A`）でもClassic表記（`Am`、`F#m`、`Db`）でも同じ順に並びます（CLIはbaken 4.2.0以降、Macアプリは1.2.0以降）。rekordboxのKey表示の設定に関係なく使えます。
- Keyのない曲は、Keyのある曲すべての**後ろ**に並びます。BPMが0の曲は、同じKeyの中で最後になります。
- 書き出したXMLをその場で並べ替えます。変わるのは曲を参照する順番だけで、名前もフォルダもほかのバイトもそのままです。何度実行しても結果は変わりません。
- rekordboxのライブラリ本体には触れません。並べ替え済みのプレイリストは、別の`rekordbox xml`ツリーに表示されます。

## よくある質問

### rekordboxでKeyとBPMの両方を使って並べ替えられますか

一度にはできません。rekordboxもプレーヤーも、一度に並べ替えに使える列は1つだけで、rekordboxの「曲順をリナンバする」でプレイリストに保存できるのも1列分の並びです。Keyでソートすると、同じKeyの中のBPMはプレイリストに登録した順のまま残ります。両方を効かせるには、Key→BPMの順番をプレイリストそのものに書き込む必要があります。手作業ならプレイリストごとに2回ソートして2回リナンバすることになり、Bake'n DeckのSortはそれを全プレイリストに一度で行います。

### CDJでKeyソートしたのにBPMがバラバラなのはなぜですか

プレーヤーのソートは表示を並べ替えているだけで、プレイリストに保存された曲順は変わらないからです。CDJが読むのはその保存順です。

### 並べ替えるとrekordboxのライブラリは壊れませんか

元のライブラリには触れません。書き換えるのは書き出したXMLの中の曲順だけで、並べ替え済みのプレイリストは別のrekordbox xmlツリーに表示されます。曲名もフォルダ構成もそのままです。

### キューやビートグリッドは残りますか

残ります。Sortが変えるのは曲の並び順だけで、音声ファイルには一切触れません。

### 無料で使えますか

コマンドライン版のbakenはMITライセンスで無料です（macOS / Windows / Linux）。Macアプリ版のBake'n DeckはMac App Storeでの買い切りで、サブスクリプションはありません。

## Sortを使う

Bake'n Deck for MacはMac App Storeで配信中です。書き込む前に並び順を確認でき、rekordboxがXMLを書き出し直すと再ソートを提案します。macOS 27では、macOSが解析したBPMとKeyをrekordboxの値と比べて、食い違いに印を付けます（[仕組みと計測値、英語](https://baken.ravers.workers.dev/music-understanding)）。コマンドライン版のbakenはMITライセンスで無料です。

[Mac App Storeでダウンロード](https://apps.apple.com/app/baken-deck/id6808813823)

[ツール全体を見る →](https://baken.ravers.workers.dev/ja)

## 関連ガイド

- [rekordboxのAuto GainがCDJに届かない理由](https://baken.ravers.workers.dev/ja/auto-gain): 数値がどこで止まるのか、ゲインをファイルに焼き込むと何が変わるのか。
- [DJのラウドネスノーマライズ：LUFSの目標値か、True Peakの天井か](https://baken.ravers.workers.dev/ja/loudness-normalization): ファイルの中で音量をそろえる2つの方法。それぞれが変えるもの、DJに残すもの、rekordboxのAuto Gainの位置づけ。
- [rekordboxを開かずにプレイリストをCDJ用のUSBに書き出す方法](https://baken.ravers.workers.dev/ja/usb-export): CDJがUSBから読むもの、bakenがcollection.xmlから書き出す仕組み、rekordbox 7のライブラリ不整合の警告。
- [HeadroomはラウドネスとTrue Peakをどう測っているか（Zenn）](https://zenn.dev/jphfa/articles/baken-in-process-bs1770-measurement): ffmpeg loudnormをやめ、プロセス内でBS.1770-4を計算。1ファイルあたり15倍速く、1,036曲を20秒で解析。一致性の検証値つき。
- [DJアプリでApple Music Understandingを使う（英語）](https://baken.ravers.workers.dev/music-understanding): Swiftのコード、100曲でのrekordboxとのBPM・Key比較、paceをエナジーに、ボーカル判定、速度、つまずいた点。macOS 27。

---

Source: https://baken.ravers.workers.dev/ja/sort
