Pipeline di importazione
L’importazione trasforma una cartella di file in una voce di catalogo senza modificare un byte dei file. Questa pagina è la pipeline dietro il flusso descritto nella guida all’uso.
Scansione
Link a questa sezioneLe cartelle osservate sono monitorate dagli eventi del file system della piattaforma, raggruppate, e scansionate di nuovo al cambiamento; le scansioni riconciliano contro la lista candidati esistente invece di ricominciare da capo. Lo scanner classifica una cartella come una release (audio direttamente dentro, o sottocartelle a forma di disco come CD1/CD2), oppure ricorre dentro di essa come raccolta. I file vengono classificati per estensione in audio, grafica e documenti, poi l’audio viene sondato: il codec che conta è quello che FFmpeg trova nei byte, non l’estensione del file. Le cartelle che contengono marcatori di scaricamento parziale sono escluse finché lo scaricamento non finisce.
Un foglio CUE trasforma un’immagine audio in una lista tracce. Il parser gestisce pregap e postgap, performer e ISRC per traccia, e sia immagini a file singolo sia layout CUE con un file per traccia. I confini delle tracce vengono convertiti da frame CUE (1/75 di secondo) a posizioni di campione esatte, che poi diventano le finestre di byte e campioni usate dalla riproduzione.
Bozze di metadati
Link a questa sezioneOgni candidato memorizza una bozza di metadati modificabile e una provenienza facoltativa. La bozza può essere vuota, compilata direttamente, compilata da un rilascio esterno o compilata da uno snapshot di tag di file memorizzato. La provenienza registra dove è iniziata la bozza corrente; le modifiche successive non la cancellano.
Lo slot dei metadati superiore visualizza la bozza, il browser Trova online o il browser Tag dei file. L’apertura o la chiusura di un browser non riscrive la bozza. Applicaing una sorgente sostituisce la bozza, la sua provenienza e la sua copertina sorgente selezionata in una transazione di database, mantenendo i ruoli dei file, i collegamenti CUE, le assegnazioni del disco e altre decisioni di mappatura.
Trova online
Link a questa sezioneTrova online è l’unico percorso che esegue l’identificazione. Calcola un Disc ID da un registro di rip o da un foglio CUE, riconosce i codici a barre e il testo del catalogo con OCR, esegue query su MusicBrainz e Discogs e fa corrispondere i risultati.
L’impostazione Fonte metadati predefinita ha tre valori. Nessuna crea una bozza vuota e non avvia alcun lavoro sui metadati. Tag dei file legge e applica l’istantanea dei tag. Trova online apre il flusso di lavoro online. Modalità predefinita di Trova online sceglie Automatica, che mette in coda l’estrazione degli indizi, le query ai fornitori e la corrispondenza, oppure Cerca manualmente, che non avvia l’identificazione. Trova online usa la modalità selezionata per ogni candidato; Automatica non riavvia un’operazione attiva o completata.
Tag dei file
Link a questa sezioneTag dei file legge pigramente i tag audio incorporati e i metadati CUE a meno che non sia il valore predefinito configurato per un candidato appena scoperto. L’anteprima memorizza uno snapshot con la generazione della scansione del candidato, la revisione di modifica del file e i file audio osservati. Applica sostituisce la bozza dallo snapshot esatto. L’importazione consuma lo stesso snapshot e non riesce prima che la libreria scriva se il suo timbro o le osservazioni sono cambiati; non legge una risposta diversa.
I campi di rilascio e traccia della bozza vuota sono modificabili immediatamente e diventano importabili quando i campi e le mappature richiesti vengono convalidati. L’elenco dei candidati non tratta la provenienza mancante come un errore o una richiesta di attenzione.
MusicBrainz viene interrogato anonimamente con un ritmo rigido di una richiesta al secondo. Discogs si autentica con il token personale dell’utente dal portachiavi, dosa e ritenta entro i suoi limiti di frequenza, e un token rifiutato viene riportato come tale così la UI può segnalarlo invece di far fallire le ricerche in silenzio. Le risposte sono memorizzate in cache per sessione, e il JSON grezzo della fonte vincente viene archiviato nel database per reinterpretazioni future.
Commit
Link a questa sezioneConfermare un’importazione esegue, in ordine:
- Verifica di decodifica: ogni traccia viene decodificata da inizio a fine; un rip che non può essere decodificato completamente fa fallire l’importazione prima che venga scritto qualcosa (un flag di configurazione può disattivarlo).
- Analisi della sonorità: sonorità integrata e true peak vengono misurati per traccia e per album durante lo stesso passaggio di decodifica, salvati per l’uso replay-gain.
- Scelta della copertina: la grafica scelta (remota, immagine della cartella o incorporata) viene renderizzata di nuovo in una miniatura di visualizzazione; l’originale viene conservato tra i file della release se proveniva dalla cartella.
- Scrittura atomica: release, tracce, crediti, identità, formati, segmenti, file e copertina vengono salvati in una transazione. Non esiste uno stato importato a metà.
La release arriva riferendo i file dell’utente sul posto. Se l’utente ha scelto la gestione cloud, il caricamento avviene dopo il commit come transizione di archiviazione, e i byte originali dei file restano la fonte di verità per tutto il tempo; nulla di ciò che l’utente ha dato a bae viene mai eliminato o alterato.
Riconoscere i rip
Link a questa sezioneOgni release registra un hash del contenuto sulla struttura della cartella importata (percorsi relativi e dimensioni, indipendente dalla posizione). Le nuove scansioni lo usano per marcare cartelle già nella libreria, e le reimportazioni dello stesso rip trovano e sostituiscono la release precedente invece di duplicarla.