.cue ファイルをタイムスタンプ付きのリストとして読む
.cue ファイルはプレーンテキストです。どのエディターでも開いて読めます。1 行に 1 つずつ短い命令が並び、対象の音声ファイル、その中のトラック、それぞれが始まる位置を示しています。バイナリの部分はなく、圧縮もされていません。zip にまとめても、メールで送っても、別のパソコンにコピーしても、時間が保たれたまま残るのはそのためです。
ただし、トラックリストのように読めるわけではありません。時間は、分・秒・100 分の 1 秒に見えて実はそうではない形式で書かれており、各トラックの長さはどこにも入っていません。ここにドロップすれば、そのまま貼り付けられるリストになって返ってきます。読み込みはこのタブ内で行われ、どこにもアップロードされません。
プロジェクトまたはセッションのファイルをここにドロップ
Ableton .als、FL Studio .flp、rekordbox .cue、Traktor .nml、Serato .session。
ファイルはこのタブ内で読み込まれます。どこにもアップロードされません。
手元にファイルがない場合は
実際のミックスを通して、出力をそのまま確かめられます。 A twelve-track recording running an hour and a quarter.
スマホで見ていますか
プロジェクトファイルは別のパソコンにあるはずです。自分にリンクを送って、そちらで続けてください。
出力されるもの
YouTube、SoundCloud、Mixcloud の説明欄にそのまま貼れるリストです。
0:00 Kestrel Lane - First Light 6:12 Ardent Fields - Paper Harbour 13:15 Nomi Vale - Slow Transit 19:48 The Quiet Wire - Understory
ファイルの中に実際に入っているもの
どの行も命令語で始まります。FILE は、そのシートが対象とする音声ファイルを指します。TRACK は番号の付いた項目を開始し、その下にある TITLE と PERFORMER の行はその項目に属します。INDEX は位置を示します。INDEX 01 がトラック本体の始まる位置で、その前に INDEX 00 があればプリギャップ、つまり CD プレーヤーがそのトラックに飛んだときに読み飛ばす助走部分を表します。
最初の TRACK より前にある TITLE と PERFORMER は意味が違います。トラックではなく、アルバム名とアルバムのアーティスト名です。シートが実際より 1 件多く入っているように見えるのは、そのためです。REM で始まる行はコメントで、DJ ソフトもリッパーも、読み手が理解しなくてよい追加情報(日付、ジャンル、ReplayGain の値など)をここに書き込みます。
cue シートの中で、素直でない部分が 1 つだけあります。文字エンコーディングです。どのエンコーディングで書かれたかを宣言するフィールドはないため、アクセント付きの名前が入ったシートは UTF-8 かもしれず、UTF-16 かもしれず、旧来の 1 バイト文字セットかもしれません。読み手はバイト列から推測するしかありません。ここでの推測が旧来の読み方に落ちた場合は、結果にその旨が表示されます。アクセント付きの名前が化けて出てくるのは、その場合だからです。
3 番目の数字はフレームで、100 分の 1 秒ではない
INDEX の時間は MM:SS:FF と書かれ、FF は CD のフレームです。1 秒あたり 75 フレームで、オーディオ CD が位置を指定できる最小の単位にあたります。つまり 01:30:37 は、1 分 30 秒と 75 分の 37 秒、すなわち 90.49 秒であり、1 分 30 秒半とほぼ同じです。100 分の 1 秒として読むと 90.37 秒になります。この惜しさが、誤解をしぶとく残します。2 通りの読み方の差は約 4 分の 1 秒より大きくなることがなく、間違ったほうももっともらしく見えてしまうからです。
見分ける手がかりがあります。フレームは 00 から 74 までなので、3 番目の数字が 75 以上であれば、正しいフレーム数ではありえません。手元のファイルに 80 台や 90 台の値があるなら、何かがフレームのフィールドに 100 分の 1 秒を書き込んだということです。拡張子が何であれ、それは cue の時間ではありません。
もう 1 つの意外な点は分のフィールドです。59 で頭打ちにはならず、繰り上がる先の「時」のフィールドもありません。この形式は時刻を表すのではなく、音声の先頭からの経過分数を数えているからです。2 時間の録音が 122:15:00 と書かれていても、それが正しい表記です。2 桁しか想定していない読み手や、00 から 59 までの範囲しか想定していない読み手は、そうしたファイルを受け付けないか、2 時間目を 1 時間目に重ねてしまいます。本当に 59 で止まるのは、秒のフィールドだけです。
CD リッパーが書き出す cue シートと、複数ファイルの場合
この形式は DJ ソフトよりずっと前から存在します。Exact Audio Copy も CDRWIN も Nero も cue シートを書き出します。ディスクが 1 本の長い音声ファイルになったあとも、トラックの区切りを残しておく方法がシートだからです。DJ 用のレコーダーが書いたシートとまったく同じように読めますし、ここではどのソフトが書いたかは問いません。
ただし 1 つだけ振る舞いの違う形があり、それはほぼリッパー由来です。ディスクをトラックごとに 1 ファイルとして取り込んだ場合、シートにはトラックの数だけ FILE 行が並び、それぞれの INDEX は、ひと続きの録音の中ではなく、自分のファイルの中での位置になります。そのほとんどは 00:00:00 と書かれているため、素直に変換するとすべての項目が 0 に並びます。
そのため、シートが 2 つ以上の音声ファイルを参照している場合は、その個数とともに表示されます。黙って意味のないリストを渡すことはしません。これを直すには、各ファイルより前にあるものの長さをすべて足し合わせる必要があり、それには音声そのものが要ります。長さは、まさに cue シートが持っていない情報です。1 ファイルに取り込んだ場合や DJ の録音であれば、FILE 行は 1 つで INDEX 行が多数という形になり、こうした処理はいっさい不要です。
cue シートに入っていないもの
cue シートが記録しているのは、曲名と、それぞれのトラックが始まる位置です。中身はそれだけです。終了時間も長さも入っていません。あるトラックの長さは、次のトラックの開始から自分の開始を引いたもので、最後のトラックには、測るための音声がなければ長さそのものがありません。音そのものについての情報もありません。テンポも、キーも、波形もなく、シートが名指している音声が手元のものと同じかどうかを確かめる手立てもありません。
レコーダーやリッパーが曲名を付けられなかったものは、番号だけの仮の名前で入ってきます。TITLE 行がどこにもないシートは、時間はまったく正しいまま、Track 1、Track 2、Track 3 に変換されます。壊れているように見えて壊れていない結果は、これだけです。時間は残っており、曲名ははじめから存在しなかっただけです。
いちばん大きな欠落は、逆方向にあります。音声から cue シートを作ることはできません。録音はあるがシートがない場合、ここにあるものが音を聴いて何がかかっているかを言い当てることはありません。それは音響フィンガープリントの領域で、このツールが行うことではありません。
Questions
- .cue ファイルの 01:30:37 は何を意味しますか
- 1 分 30 秒と 37 CD フレーム、合計で 90.49 秒です。最後の数字を 100 分の 1 秒として読むと 90.37 秒になり、これがよくある間違いです。cue の時間を手で換算するときは、3 番目の数字を 75 で割って秒に足してください。37 フレームは 0.37 秒ではなく 0.49 秒です。
- .cue ファイルをメモ帳で開けますか
- 開けます。プレーンテキストで、たいていは 1 トラックあたり 1〜2 行しかありません。曲名が入っているかどうかを確かめるには、開いてみるのがいちばん早い方法です。TITLE と PERFORMER の行がないシートは、どう変換しても曲名の入ったトラックリストにはならないからです。編集する場合は、開いたときと同じエンコーディングで保存し直してください。別のエンコーディングで保存することが、アクセント付きの名前が化ける原因になります。
- cue ファイルに 122:15:00 のような時間が出るのはなぜですか
- ファイルが壊れているわけではありません。122 分 15 秒 0 フレーム、つまり録音の開始から 2 時間 2 分 15 秒の地点です。cue シートに「時」の単位はないため、音声が続くかぎり分は増え続けます。ここでもその通りに読み取ります。同じファイルを 2:15 と表示したり、そもそも受け付けなかったりするソフトは、この形式にもともとなかった制限を課しています。
- Exact Audio Copy や Nero の cue シートも読めますか
- 読めます。何が書いたものであれ cue シートは cue シートで、リッパーも DJ ソフトと同じ命令語を使います。確かめる価値があるのは、シートが指している音声ファイルが 1 つか、トラックごとに 1 つかという点です。トラックごとに取り込んだ場合、どの項目も自分のファイルの中の 00:00:00 から始まります。シートが 2 つ以上のファイルを参照している場合はその旨が表示されるので、時間がおかしい理由を自分で突き止める必要はありません。
- cue シートからトラックの長さは分かりますか
- 引き算でなら分かりますが、最後の 1 曲だけは分かりません。シートに入っているのは各トラックの開始位置だけで、どこで終わるかについては何も記録されていません。そのため、最後を除くすべての長さは、次の開始から自分の開始を引いたものになります。最後のトラックは音声の終わりまで続きますが、シートはその終わりを知りません。その数値が必要な場合は、音声ファイルそのものから取るしかありません。
Using something else?
rekordbox
rekordbox の録音から、タイムスタンプ付きのトラックリストを作る
Open作り方
DJ ミックスにタイムスタンプ付きのトラックリストを用意する
OpenYouTube チャプター
ミックスのファイルから YouTube のチャプターを作る
OpenThere is also a full tutorial covering all five programs and what to do when the times look wrong.