ইম্পোর্ট পাইপলাইন
আমদানি ফাইলগুলির একটি বাইট পরিবর্তন না করেই ফাইলগুলির একটি ফোল্ডারকে একটি ক্যাটালগ এন্ট্রিতে পরিণত করে৷ এই পৃষ্ঠাটি ব্যবহার নির্দেশিকা এ বর্ণিত প্রবাহের পিছনের পাইপলাইন।
স্ক্যান
এই অংশের লিঙ্কদেখা ফোল্ডার প্ল্যাটফর্মের ফাইল-system event দিয়ে নজরে রাখা হয়, অল্প বিরতি দিয়ে নেওয়া হয়, এবং বদলালে আবার স্ক্যান হয়; স্ক্যান শুরু থেকে শুরু না করে বিদ্যমান প্রার্থী-তালিকার সঙ্গে মিলিয়ে নেয়। স্ক্যানার একটি ফোল্ডারকে এক রিলিজ হিসেবে চিহ্নিত করে (অডিও সরাসরি ভিতরে, বা CD1/CD2-এর মতো disc-shaped subfolder), বা সংগ্রহ হিসেবে ভিতরে নামে। File extension দিয়ে অডিও, চিত্র, এবং নথি আলাদা হয়, তারপর অডিও পরীক্ষা করা হয়: যে codec গুরুত্বপূর্ণ তা হলো বাইট-এ FFmpeg যা পায়, ফাইল extension নয়। Partial-ডাউনলোড marker থাকা ফোল্ডার ডাউনলোড শেষ না হওয়া পর্যন্ত বাদ থাকে।
CUE sheet এক অডিও ইমেজকে ট্র্যাক-তালিকায় পরিণত করে। Parser pregap ও postgap, প্রতি-ট্র্যাক performer ও ISRC, এবং single-ফাইল image ও one-ফাইল-per-ট্র্যাক CUE layout সামলায়। ট্র্যাকের সীমা CUE frame (সেকেন্ডের 1/75) থেকে exact নমুনা অবস্থান-এ বদলে যায়, যা পরে প্লেব্যাকের ব্যবহৃত বাইট ও নমুনা উইন্ডো হয়।
মেটাডাটা খসড়া
এই অংশের লিঙ্কপ্রত্যেক প্রার্থী একটি সম্পাদনযোগ্য মেটাডাটা খসড়া এবং বৈকল্পিক উৎস সংরক্ষণ করে। খসড়াটি ফাঁকা হতে পারে, সরাসরি পূরণ করা যেতে পারে, একটি বহিস্থিত মুক্তি থেকে পূরণ করা যেতে পারে, অথবা একটি সংরক্ষিত ফাইল-ট্যাগ স্ন্যাপশট থেকে পূরণ করা যেতে পারে। উৎস রেকর্ড যেখানে বর্তমান খসড়াটি শুরু হয়; পরবর্তী সম্পাদনা এটি মুছে ফেলে না। সরাসরি প্রবেশ এবং একটি মুছে ফেলা খসড়ার কোন উৎস নেই।
উপরের মেটাডাটা স্লট খসড়া, অনলাইনে খুঁজুন ব্রাউজার, অথবা ফাইলের ট্যাগ ব্রাউজার প্রদর্শন করে। একটি ব্রাউজার খোলা অথবা বন্ধ করা খসড়াটি পুনরায় লিখে না। প্রয়োগ করুন একটি উৎস একটি ডাটাবেস ট্রান্সকেশনে খসড়া, এর উৎস এবং এর নির্বাচিত উৎস কভার প্রতিস্থাপন করে, ফাইল ভূমিকা, CUE বাইন্ডিং, ডিস্ক বরাদ্দ এবং অন্যান্য ম্যাপিং সিদ্ধান্ত সংরক্ষণ করে।
অনলাইনে খুঁজুন
এই অংশের লিঙ্কঅনলাইনে খুঁজুন হল একমাত্র পাথ যা সনাক্তকরণ চালায়। এটি একটি রিপ লগ অথবা CUE শিট থেকে একটি ডিস্ক ID গণনা করে, OCR দ্বারা বারকোড এবং ক্যাটালগ টেক্সট সনাক্ত করে, MusicBrainz এবং Discogs অনুসন্ধান করে, এবং ফলাফল মিলিয়ে দেয়। অন্তর্ভুক্ত অডিও ট্যাগ অনলাইন-সনাক্তকরণ প্রমাণ নয়।
ডিফল্ট মেটাডেটা উৎস-এর তিনটি মান আছে। কোনোটিই নয় একটি ফাঁকা খসড়া তৈরি করে এবং কোনো মেটাডেটা কাজ শুরু করে না। ফাইলের ট্যাগ ট্যাগ স্ন্যাপশট পড়ে এবং প্রয়োগ করে। অনলাইনে খুঁজুন অনলাইন কার্যপ্রবাহ খোলে। অনলাইনে খুঁজুন-এর ডিফল্ট মোড থেকে স্বয়ংক্রিয় বেছে নিলে প্রমাণ সংগ্রহ, প্রদানকারীর অনুসন্ধান ও মিল সারিতে যায়; নিজে খুঁজুন কোনো সনাক্তকরণ শুরু করে না। যেকোনো প্রার্থীর জন্য অনলাইনে খুঁজুন খুললে নির্বাচিত মোড ব্যবহৃত হয়, আর স্বয়ংক্রিয় মোড চলমান বা সম্পন্ন কাজ আবার শুরু করে না।
ফাইলের ট্যাগ
এই অংশের লিঙ্কফাইলের ট্যাগ অন্তর্ভুক্ত অডিও ট্যাগ এবং CUE মেটাডাটা অলসভাবে পড়ে, যদি না এটি নতুনভাবে আবিষ্কৃত প্রার্থীর জন্য ডিফল্ট কনফিগার করা হয়। প্রাকদর্শনে একটি স্ন্যাপশট সংরক্ষণ করা হয় যেটিতে প্রার্থীর স্ক্যান উৎপাদন, ফাইল-সম্পাদনা সংস্করণ এবং পর্যবেক্ষণকৃত অডিও ফাইল স্ট্যাম্প করা থাকে। প্রয়োগ করুন এটিকে প্রতিস্থাপন করলে সেই সঠিক স্ন্যাপশট থেকে ড্রাফট প্রতিস্থাপন করা হয়। ইম্পোর্ট একই স্ন্যাপশট ব্যবহার করে এবং লাইব্রেরী লেখার পূর্বে ব্যর্থ হয় যদি এর স্ট্যাম্প বা পর্যবেক্ষণ পরিবর্তন করা হয়; এটি একটি ভিন্ন উত্তর পড়ে না।
সরাসরি প্রবেশের ফলে কোন মেটাডাটা I/O করা হয় না। ফাঁকা খসড়ার মুক্তি এবং ট্র্যাক ক্ষেত্রগুলি অবিলম্বে সম্পাদনযোগ্য, এবং এটি ইম্পোর্টযোগ্য হয়ে ওঠে যখন প্রয়োজনীয় ক্ষেত্র এবং ম্যাপগুলি বৈধতা পায়। প্রার্থী তালিকাটি অনুপস্থিত উৎসকে একটি ত্রুটি বা মনোযোগের অনুরোধ হিসাবে বিবেচনা করে না।
MusicBrainz নাম না দিয়ে strict one-request-per-second গতিতে queried হয়। Discogs keyring থেকে ব্যবহারকারী-এর personal টোকেন দিয়ে authenticate করে, নিজের rate limit-এর মধ্যে paced ও retried হয়, আর rejected টোকেন সেইভাবেই reported হয় যাতে UI সেটি flag করতে পারে, search চুপচাপ fail না করে। Response প্রতি session-এ cached হয়, আর যে উৎস জেতে তার raw JSON ভবিষ্যৎ re-interpretation-এর জন্য ডেটাবেস-এ archived হয়।
সংরক্ষণ
এই অংশের লিঙ্কইম্পোর্ট confirm করলে, ক্রমে চলে:
- Decode verification: প্রতিটি ট্র্যাক শুরু থেকে শেষ পর্যন্ত ডিকোড হয়; পুরো ডিকোড না হওয়া rip কিছু লেখার আগে ইম্পোর্ট fail করে (config flag দিয়ে এটি disable করা যায়)।
- Loudness মাপা: একই ডিকোড pass-এ প্রতি ট্র্যাক ও প্রতি অ্যালবাম integrated loudness এবং true peak মাপা হয়, replay-gain ব্যবহারের জন্য stored।
- কভার নির্বাচন: chosen art (remote, ফোল্ডার image, বা embedded) display thumbnail-এ re-rendered হয়; ফোল্ডার থেকে এলে মূল রিলিজের ফাইলের মধ্যে রাখা হয়।
- এক লেনদেনে লেখা: রিলিজ, ট্র্যাক, কৃতিত্ব, পরিচয়, ফরম্যাট, segment, ফাইল, এবং কভার এক transaction-এ commit হয়। Half-imported state নেই।
রিলিজ ব্যবহারকারীর ফাইলকে জায়গাতেই reference করে lands করে। ব্যবহারকারী ক্লাউড-managed বেছে নিলে আপলোড commit-এর পরে সংরক্ষণ transition হিসেবে হয়, আর ফাইলের মূল বাইট সবসময় উৎস of truth থাকে; ব্যবহারকারী bae-কে যা দিয়েছে তা কখনও delete বা alter হয় না।
Rip চেনা
এই অংশের লিঙ্কপ্রতিটি রিলিজ imported ফোল্ডার-এর গঠন (relative path ও size, location-independent)-এর উপর content hash record করে। Re-scan সেটি ব্যবহার করে লাইব্রেরি-তে আগে থেকেই থাকা ফোল্ডার mark করে, আর একই rip-এর re-আমদানি prior রিলিজ duplicate না করে find and replace করে।