Naar inhoud springen

Importpijplijn

Importeren verandert een map met bestanden in een catalogusitem zonder een byte van de bestanden te wijzigen. Deze pagina is de pijplijn achter de stroom die wordt beschreven in de gebruiksgids.

Bewaakte mappen worden gemonitord via de bestandssysteemevents van het platform, gedebounced, en bij wijziging opnieuw gescand; scans stemmen af met de bestaande kandidatenlijst in plaats van opnieuw te beginnen. De scanner classificeert een map als een release (audio direct erin, of discvormige submappen zoals CD1/CD2), of gaat erin verder als verzameling. Bestanden worden op extensie geclassificeerd als audio, artwork en documenten, daarna wordt audio geprobed: de codec die telt is degene die FFmpeg in de bytes vindt, niet de bestandsextensie. Mappen met markeringen voor gedeeltelijke downloads worden uitgesloten totdat de download klaar is.

Een CUE-sheet maakt van een audio-image een tracklijst. De parser behandelt pregaps en postgaps, performers en ISRCs per track, en zowel images met een bestand als CUE-indelingen met een bestand per track. Trackgrenzen worden van CUE-frames (1/75e seconde) naar exacte sampleposities geconverteerd, die later de byte- en samplevensters worden die afspelen gebruikt.

Concepten van metagegevens

Link naar deze sectie

Elke kandidaat slaat één bewerkbare metadata-concept en optionele herkomst op. Het concept kan leeg zijn, direct worden ingevuld, worden ingevuld vanuit een externe release of worden ingevuld vanuit een opgeslagen snapshot van een bestandstag. Herkomstrecords waar het huidige concept is begonnen; latere bewerkingen wissen het niet. Directe invoer en een gewist concept hebben geen herkomst.

Het bovenste metadataslot toont ofwel het concept, de Online zoeken-browser of de Bestandstags-browser.Het openen of sluiten van een browser herschrijft het concept niet.Toepassening een bron vervangt het concept, de herkomst en de geselecteerde broncover in één databasetransactie terwijl bestandsrollen, CUE-bindingen, schijftoewijzingen en andere mapping-beslissingen behouden blijven.

Online zoeken is het enige pad dat identificatie uitvoert. Het berekent een Disc ID vanuit een rip log of CUE-blad, herkent barcodes en catalogustekst met OCR, vraagt MusicBrainz en Discogs op en vergelijkt de resultaten.

De instelling Standaardbron voor metagegevens heeft drie waarden. Geen maakt een leeg concept en start geen metagegevenswerk. Bestandstags leest de momentopname van tags en past die toe. Online zoeken opent de online werkwijze. Standaardmodus voor Online zoeken kiest Automatisch, dat bewijsextractie, providerquery’s en het vergelijken in de wachtrij zet, of Handmatig zoeken, dat geen identificatie start. Online zoeken gebruikt voor elke kandidaat de gekozen modus; Automatisch start een actieve of voltooide taak niet opnieuw.

Bestandstags leest ingesloten audiolabels en CUE-metagegevens lui, tenzij dit de standaardinstelling is voor een nieuw ontdekte kandidaat. De voorvertoning slaat een momentopname op met de scangeneratie van de kandidaat, de bestandsbewerkingsrevisie en de waargenomen audiobestanden. Toepassen vervangt het concept van die exacte momentopname. Importeren verbruikt dezelfde momentopname en mislukt voordat de bibliotheek schrijft als de stempel of waarnemingen zijn gewijzigd; het leest geen ander antwoord.

Direct invoeren voert geen I/O van metagegevens uit. De vrijgave- en trackvelden van het lege concept kunnen onmiddellijk worden bewerkt en het wordt importeerbaar wanneer de vereiste velden en toewijzingen worden gevalideerd.De kandidaatlijst behandelt ontbrekende herkomst niet als een fout of een verzoek om aandacht.

MusicBrainz wordt anoniem bevraagd met een strak tempo van een verzoek per seconde. Discogs authenticeert met de persoonlijke token van de gebruiker uit de sleutelbos, gedoseerd en opnieuw geprobeerd binnen zijn rate limits, en een geweigerde token wordt als zodanig gerapporteerd zodat de UI hem kan markeren in plaats van zoekopdrachten stil te laten falen. Antwoorden worden per sessie gecachet, en de ruwe JSON van welke bron ook wint wordt in de database gearchiveerd voor latere herinterpretatie.

Een import bevestigen draait, op volgorde:

  1. Decodecontrole: elke track wordt van begin tot eind gedecodeerd; een rip die niet volledig kan decoderen faalt de import voordat iets wordt geschreven (een config flag kan dit uitschakelen).
  2. Loudnessanalyse: integrated loudness en true peak worden per track en per album gemeten tijdens dezelfde decodepass, opgeslagen voor replay-gain-gebruik.
  3. Hoesselectie: de gekozen art (remote, mapafbeelding, of ingesloten) wordt opnieuw gerenderd naar een displaythumbnail; het origineel wordt bij de bestanden van de release bewaard als het uit de map kwam.
  4. Atomaire write: de release, tracks, credits, identities, formats, segments, files en cover committen in een transactie. Er is geen half-geimporteerde toestand.

De release landt met verwijzingen naar de bestanden van de gebruiker op hun plek. Als de gebruiker cloud-beheerd heeft gekozen, gebeurt de upload na de commit als opslagovergang, en blijven de oorspronkelijke bytes van de bestanden de bron van waarheid; niets wat de gebruiker aan bae gaf wordt ooit verwijderd of gewijzigd.

Rips herkennen

Link naar deze sectie

Elke release registreert een contenthash over de structuur van zijn geimporteerde map (relatieve paden en groottes, onafhankelijk van locatie). Re-scans gebruiken die om mappen te markeren die al in de bibliotheek staan, en re-imports van dezelfde rip vinden en vervangen hun eerdere release in plaats van hem te dupliceren.