Zum Inhalt springen

Import-Pipeline

Der Import verwandelt einen Ordner mit Dateien in einen Katalogeintrag, ohne ein Byte der Dateien zu ändern. Diese Seite ist die Pipeline hinter dem im Gebrauchsleitfaden beschriebenen Ablauf.

Überwachte Ordner werden über Dateisystemereignisse der Plattform beobachtet, entprellt und bei Änderungen erneut gescannt; Scans werden mit der vorhandenen Kandidatenliste abgeglichen, statt von vorne zu beginnen. Der Scanner klassifiziert einen Ordner als ein Release (Audio direkt darin oder discförmige Unterordner wie CD1/CD2) oder steigt als Sammlung rekursiv hinein. Dateien werden nach Endung als Audio, Artwork und Dokumente klassifiziert, dann wird Audio geprüft: Der relevante Codec ist der, den FFmpeg in den Bytes findet, nicht die Dateiendung. Ordner mit Markern für teilweise Downloads werden ausgeschlossen, bis der Download fertig ist.

Ein CUE-Sheet verwandelt ein Audio-Image in eine Trackliste. Der Parser behandelt Pregaps und Postgaps, Performer und ISRCs pro Track sowie Ein-Datei-Images und CUE-Layouts mit einer Datei pro Track. Trackgrenzen werden von CUE-Frames (1/75 Sekunde) in exakte Samplepositionen umgerechnet, aus denen später die Byte- und Sample-Fenster werden, die die Wiedergabe nutzt.

Metadaten-Entwürfe

Link zu diesem Abschnitt

Jeder Kandidat speichert einen editierbaren Metadaten-Entwurf und eine optionale Provenienz. Der Entwurf kann leer sein, direkt ausgefüllt, aus einer externen Freigabe ausgefüllt oder aus einem gespeicherten Datei-Tag-Snapshot ausgefüllt werden. Provenienz-Aufzeichnungen, wo der aktuelle Entwurf begann; spätere Bearbeitungen löschen ihn nicht. Direkte Eingabe und ein gelöschter Entwurf haben keine Provenienz.

Der obere Metadaten-Slot zeigt entweder den Entwurf, den Online suchen-Browser oder den Datei-Tags-Browser an.Beim Öffnen oder Schließen eines Browsers wird der Entwurf nicht neu geschrieben.Beim Anwendenen einer Quelle werden der Entwurf, seine Herkunft und das ausgewählte Quelldeckblatt in einer Datenbanktransaktion ersetzt, wobei Dateirollen, CUE-Bindungen, Datenträgerzuordnungen und andere Zuordnungsentscheidungen beibehalten werden.

Online suchen ist der einzige Pfad, der die Identifizierung ausführt. Er berechnet einen Disc-ID aus einem Rip-Protokoll oder einem CUE-Blatt, erkennt Barcodes und Katalogtext mit OCR, fragt MusicBrainz und Discogs ab und stimmt die Ergebnisse ab.

Die Einstellung Standardquelle für Metadaten hat drei Werte. Keine erstellt einen leeren Entwurf und startet keine Metadatenarbeit. Datei-Tags liest und übernimmt den Tag-Snapshot. Online suchen öffnet den Online-Ablauf. Standardmodus für Online suchen wählt Automatisch, das Belegextraktion, Anbieterabfragen und den Abgleich einreiht, oder Manuell suchen, das keine Identifizierung startet. Online suchen verwendet bei jedem Kandidaten den gewählten Modus; Automatisch startet einen laufenden oder abgeschlossenen Vorgang nicht erneut.

Datei-Tags liest eingebettete Audio-Tags und CUE-Metadaten faul, es sei denn, es ist die konfigurierte Standardeinstellung für einen neu erkannten Kandidaten. Die Vorschau speichert einen Snapshot, der mit der Scangenerierung des Kandidaten, der Dateibearbeitungsrevision und den beobachteten Audiodateien versehen ist. Anwendenersetzt den Entwurf aus diesem exakten Snapshot. Der Import verwendet denselben Snapshot und schlägt fehl, bevor die Bibliothek schreibt, wenn sich der Stempel oder die Beobachtungen ändern; es wird keine andere Antwort gelesen.

Bei der direkten Eingabe werden keine Metadaten-E/A durchgeführt. Die Freigabe- und Track-Felder des leeren Entwurfs können sofort bearbeitet werden, und der Entwurf kann importiert werden, sobald die erforderlichen Felder und Zuordnungen validiert sind.Die Kandidatenliste behandelt fehlende Provenienz nicht als Fehler oder Aufmerksamkeitsbedarf.

MusicBrainz wird anonym mit einem strikten Takt von einer Anfrage pro Sekunde abgefragt. Discogs authentifiziert sich mit dem persönlichen Token des Benutzers aus dem Schlüsselbund, getaktet und innerhalb seiner Ratenlimits erneut versucht, und ein abgelehntes Token wird als solches gemeldet, damit die Oberfläche es anzeigen kann, statt Suchvorgänge still scheitern zu lassen. Antworten werden pro Sitzung gecacht, und das rohe JSON der Quelle, die gewinnt, wird in der Datenbank für spätere Neuinterpretation archiviert.

Die Bestätigung eines Imports läuft in dieser Reihenfolge:

  1. Dekodierprüfung: Jeder Track wird von Anfang bis Ende dekodiert; ein Rip, der nicht vollständig dekodiert werden kann, lässt den Import fehlschlagen, bevor etwas geschrieben wird (ein Konfigurationsflag kann dies deaktivieren).
  2. Lautheitsanalyse: Integrierte Lautheit und True Peak werden pro Track und pro Album während desselben Dekodierdurchgangs gemessen und für Replay-Gain-Nutzung gespeichert.
  3. Cover-Auswahl: Das gewählte Artwork (remote, Ordnerbild oder eingebettet) wird zu einem Anzeige-Thumbnail neu gerendert; das Original wird unter den Dateien des Releases behalten, wenn es aus dem Ordner kam.
  4. Atomarer Schreibvorgang: Release, Tracks, Mitwirkende, Identitäten, Formate, Segmente, Dateien und Cover werden in einer Transaktion festgeschrieben. Es gibt keinen halb importierten Zustand.

Das Release landet mit Verweisen auf die Dateien des Benutzers an Ort und Stelle. Wenn der Benutzer cloudverwaltet gewählt hat, geschieht der Upload nach dem Festschreiben als Speicherübergang, und die ursprünglichen Bytes der Dateien bleiben währenddessen die Quelle der Wahrheit; nichts, was der Benutzer bae gegeben hat, wird je gelöscht oder verändert.

Jedes Release erfasst einen Inhalts-Hash über die Struktur seines importierten Ordners (relative Pfade und Größen, unabhängig vom Ort). Re-Scans nutzen ihn, um Ordner zu markieren, die bereits in der Mediathek sind, und Re-Importe desselben Rips finden und ersetzen ihr vorheriges Release, statt es zu duplizieren.