コンテンツへ移動

インポートパイプライン

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

監視フォルダーはプラットフォームのファイルシステムイベントで監視され、変化がまとまった後に再スキャンされます。スキャンは最初からやり直すのではなく、既存の候補一覧と突き合わせます。スキャナーは、フォルダーを 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 は検索を静かに失敗させず、問題として示せます。レスポンスはセッションごとにキャッシュされ、勝ったソースの元 JSON は将来の再解釈のためにデータベースへアーカイブされます。

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

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

リリースは、ユーザーのファイルをその場で参照する形で作成されます。ユーザーがクラウド管理対象を選んだ場合、アップロードはコミット後にストレージ遷移として行われます。元ファイルのバイト列はその間ずっと正とされ、ユーザーが bae に渡したものが削除または変更されることはありません。

リッピングの認識

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

各リリースは、インポートしたフォルダーの構造(相対パスとサイズ、場所には依存しない)に対する内容ハッシュを記録します。再スキャンではそれを使って、すでにライブラリにあるフォルダーを示します。同じリッピングを再インポートした場合は、重複させず、以前のリリースを見つけて置き換えます。