דילוג לתוכן

צינור הייבוא

ייבוא הופך תיקיית קבצים לרשומת קטלוג מדויקת להוצאה בלי לשנות בית אחד מהקבצים. הדף הזה הוא הצינור שמאחורי הזרימה שמתוארת במדריך השימוש.

תיקיות במעקב מנוטרות דרך אירועי מערכת הקבצים של הפלטפורמה, עם השהיית איחוד, ונסרקות מחדש בשינוי; סריקות מתאמות מול רשימת המועמדים הקיימת במקום להתחיל מחדש. הסורק מסווג תיקייה כהוצאה אחת (שמע ישירות בפנים, או תיקיות משנה בצורת דיסק כמו CD1/CD2), או נכנס לתוכה כאוסף. קבצים מסווגים לפי סיומת לשמע, אמנות ומסמכים, ואז השמע נבדק: הקודק החשוב הוא זה ש-FFmpeg מוצא בבתים, לא סיומת הקובץ. תיקיות שמכילות סמני הורדה חלקית מוחרגות עד שההורדה מסתיימת.

גיליון CUE הופך דימוי שמע אחד לרשימת רצועות. המנתח מטפל ב-pregaps ו-postgaps, מבצעים ו-ISRC לכל רצועה, וגם דימויי קובץ יחיד וגם פריסות CUE של קובץ לכל רצועה. גבולות רצועה מומרים ממסגרות CUE (1/75 שנייה) למיקומי דגימה מדויקים, שמאוחר יותר הופכים לחלונות הבתים והדגימות שהניגון משתמש בהם.

ראיות, לא תגיות

קישור למקטע הזה

זיהוי קורא שלושה סוגי ראיות מהתיקייה במעבר אחד:

  • disc ID, טביעת האצבע של MusicBrainz לפריסת הרצועות המדויקת של CD, מחושבת מיומן ריפ או מגיליון CUE;
  • ברקודים, מפוענחים מסריקות אמנות על ידי מסגרת הראייה של הפלטפורמה ונקראים משדות קטלוג של CUE;
  • טקסט: מספרי קטלוג וטקסט חופשי מ-OCR של אמנות, שמות תיקיות וקבצים וקובצי טקסט בריפ.

תגיות שמע מוטמעות אינן ראיות בכוונה: הן מתארות מה מתייג האמין, לא מה ההדפסה. (הן מזינות את מטא־נתוני הגיבוי כשהמשתמש מייבא הוצאה כלא ידועה.)

Disc ID וברקוד נבדקים במקביל, Disc ID מול MusicBrainz, הברקוד מול MusicBrainz ו-Discogs יחד, והתוצאות מוצלבות: תוצאות שמסכימות על קבוצת הוצאה מתכנסות, התאמות מספר קטלוג מצמצמות את רשימת ההדפסות, ואי־הסכמה בין אותות מוצגת למשתמש כהתנגשות מפורשת במקום ניחוש שקט. כל תוצאה נושאת את המקור שלה (נמצאה לפי Disc ID, לפי ברקוד, התאמת קטלוג) כך שהממשק יכול לומר למה שורה מוצעת.

MusicBrainz נשאל בעילום שם בקצב קפדני של בקשה אחת לשנייה. Discogs מאמת עם האסימון האישי של המשתמש ממחזיק המפתחות, בקצב ובניסיונות חוזרים בתוך המגבלות שלו, ואסימון שנדחה מדווח כך שהממשק יכול לסמן אותו במקום להכשיל חיפושים בשקט. תגובות נשמרות במטמון לכל הפעלה, וה-JSON הגולמי של המקור שנבחר מאורכב במסד הנתונים לפרשנות מחדש בעתיד.

אישור ייבוא מריץ, לפי הסדר:

  1. אימות פענוח: כל רצועה מפוענחת מתחילתה עד סופה; ריפ שלא יכול להתפענח במלואו מכשיל את הייבוא לפני שמשהו נכתב (דגל הגדרה יכול לכבות זאת).
  2. ניתוח עוצמת שמע: עוצמה משולבת ושיא אמיתי נמדדים לכל רצועה ולכל אלבום באותו מעבר פענוח, ונשמרים לשימוש replay-gain.
  3. בחירת עטיפה: האמנות שנבחרה (מרוחקת, תמונת תיקייה או מוטמעת) נוצרת מחדש כתמונת תצוגה ממוזערת; המקור נשמר בין קובצי ההוצאה אם הגיע מהתיקייה.
  4. כתיבה אטומית: ההוצאה, הרצועות, הקרדיטים, הזהויות, הפורמטים, המקטעים, הקבצים והעטיפה נשמרים בעסקה אחת. אין מצב מיובא למחצה.

ההוצאה נוחתת כשהיא מפנה לקבצים של המשתמש במקום. אם המשתמש בחר ניהול בענן, ההעלאה מתרחשת אחרי השמירה כמעבר אחסון, והבתים המקוריים של הקבצים נשארים מקור האמת לאורך כל הדרך; שום דבר שהמשתמש נתן ל-bae לא נמחק או משתנה.

זיהוי ריפים

קישור למקטע הזה

כל הוצאה רושמת גיבוב תוכן של מבנה התיקייה שיובאה (נתיבים יחסיים וגדלים, בלי תלות במיקום). סריקות חוזרות משתמשות בו כדי לסמן תיקיות שכבר בספרייה, וייבואים חוזרים של אותו ריפ מוצאים ומחליפים את ההוצאה הקודמת שלהם במקום לשכפל אותה.