コンテンツへ移動

インポートパイプライン

インポートでは、ファイルのバイトを変更せずに、ファイルのフォルダーがカタログ エントリに変換されます。このページは、使用ガイド で説明されているフローの背後にあるパイプラインです。

監視フォルダーはプラットフォームのファイルシステムイベントで監視され、変化がまとまった後に再スキャンされます。スキャンは最初からやり直すのではなく、既存の候補一覧と突き合わせます。スキャナーは、フォルダーを 1 つのリリース(音声が直下にある、または CD1/CD2 のようなディスク形サブフォルダーを持つ)として分類するか、コレクションとして再帰的に入ります。ファイルは拡張子で音声、アートワーク、文書に分類され、その後で音声が検査されます。重要なコーデックは拡張子ではなく、FFmpeg がバイト列から見つけたものです。部分ダウンロードを示すマーカーを含むフォルダーは、ダウンロード完了まで除外されます。

CUE シートは、1 つの音声イメージをトラックリストに変換します。パーサーはプリギャップとポストギャップ、トラックごとの演奏者と ISRC、単一ファイルイメージとトラックごとに 1 ファイルの CUE 配置の両方を扱います。トラック境界は CUE フレーム(1/75 秒)から正確なサンプル位置へ変換され、後で再生が使うバイト窓とサンプル窓になります。

メタデータの草稿

このセクションへのリンク

それぞれの候補は編集可能なメタデータ草稿とオプションの出所を一つ保存します。草稿は空白、直接埋め込み、外部リリースから埋め込み、または保存されたファイルタグスナップショットから埋め込みが可能です。出所は現在の草稿が始まった場所を記録します。後で編集すると削除されません。直接入力とクリアされた草稿は出所を持ちません。

上部のメタデータスロットは、草稿、オンラインで検索 ブラウザ、またはファイルのタグ ブラウザのいずれかを表示します。ブラウザを開いたり閉じたりすると、草稿は書き換えられません。適用 ソースは、ファイルの役割、CUE バインド、ディスク割り当て、その他のマッピング決定を保持しながら、草稿、その出所、そして選択されたソースカバーを一つのデータベーストランザクションで置き換えます。

オンラインで検索

このセクションへのリンク

オンラインで検索 は識別を実行する唯一のパスです。rip ログまたは CUE シートから ディスクID を計算し、OCR でバーコードとカタログテキストを認識し、MusicBrainz と Discogs をクエリし、結果をマッチします。埋め込みオーディオタグはオンライン識別証拠ではありません。

デフォルトのメタデータソースには 3 つの値があります。なしは空の草稿を作成し、メタデータ処理を開始しません。ファイルのタグはタグのスナップショットを読み込んで適用します。オンラインで検索はオンラインの処理画面を開きます。オンラインで検索のデフォルトモードでは、証拠抽出、プロバイダーへの問い合わせ、照合をキューに入れる自動か、識別を開始しない手動で検索を選びます。どの候補でもオンラインで検索を開くと選択したモードが使われ、自動は実行中または完了済みの処理を再開しません。

ファイルのタグ は、新しく発見された候補に対してデフォルトで設定されていない限り、埋め込みオーディオタグと CUE メタデータを怠惰に読みます。プレビューは、候補のスキャン生成、ファイル編集の修正、および観測されたオーディオファイルでスタンプされたスナップショットを保存します。適用 は、その正確なスナップショットからの草稿を置き換えます。インポートは同じスナップショットを消費し、スタンプまたは観測が変更された場合、ライブラリが書き込む前に失敗します。異なる応答は読み込まれません。

ダイレクトエントリはメタデータ I/O を行わない。空白の草稿のリリースとトラックフィールドは直ちに編集可能であり、必要なフィールドとマッピングが検証されるとインポート可能になります。候補リストは欠落したプロヴァンスをエラーまたは注意要請として扱わない。

MusicBrainz は匿名で照会され、厳密に 1 秒 1 リクエストの間隔を守ります。Discogs はキーリング内のユーザー個人トークンで認証され、レート制限内で間隔調整と再試行を行います。拒否されたトークンはそのように報告されるため、UI は検索を静かに失敗させず、問題として示せます。レスポンスはセッションごとにキャッシュされます。リリースを選ぶと、bae がその文書から使うもの(アルバムとプレスの情報、クレジットと作品を含む全トラックリスト、カバーの候補、他のカタログでの呼び名)が一度だけデータベースに抽出されます。元の JSON は保存しません。

インポートの確認後、次の順で実行されます。

  1. Decode verification: すべてのトラックを先頭から末尾までデコードします。完全にデコードできないリッピングは、何かを書き込む前にインポートに失敗します。
  2. Loudness analysis: その同じデコード処理中に、トラックごとおよびアルバムごとの integrated loudness と true peak を測定し、replay-gain 用に保存します。
  3. Cover selection: 選ばれたアート(リモート、フォルダー画像、埋め込み)を表示用サムネイルに再描画します。フォルダー由来の場合、元画像はリリースのファイル群に保持されます。
  4. Atomic write: リリース、トラック、クレジット、身元、形式、セグメント、ファイル、カバーを 1 つのトランザクションでコミットします。半分だけインポートされた状態はありません。

リリースは、ユーザーのファイルをその場で参照する形で作成されます。クラウドへのインポートでは、coven が書き込み前に各ファイルを読んでハッシュを取り、同じ書き込みで各ファイルを coven にステージングし、各行をそのファイルに向け、アップロードをキューに入れます。ローカルのインポートでは、代わりにこのデバイス上の各ファイルのパス、サイズ、更新日時を記録し、バイト列は後でリリースがクラウドに移動されたときにだけ読まれます。どちらの場合も元ファイルのバイト列はその間ずっと正とされ、ユーザーが bae に渡したものが削除または変更されることはありません。

リッピングの認識

このセクションへのリンク

インポートのたびに、新しいランダムなIDと独立したトラック・ファイル行を持つリリースを作成します。各デバイスは、自分の各インポートが読み取ったファイルの、並べ替えた相対パス、サイズ、更新時刻のSHA-256を local_release_origin に記録します。この記録は同期されません。このデバイスがハッシュを記録したフォルダは、どこへ移動しても完了タブに表示され、その行にはそこからインポートした唯一のリリースが示されます。同じデバイスで同じファイルを再びインポートすると失敗し、完了タブに再インポート操作はありません。