सामग्री पर जाएँ

प्लेबैक इंजन

प्लेबैक इंजन का अनुबंध स्रोत के प्रति निष्ठा है: उपयोगकर्ता के मूल बाइट उसी स्रोत की दर पर डिकोड करना और रिलीज की संरचना जस की तस रखना। यह पेज उसी व्यवहार की विशिष्टता बताता है।

हर प्लेटफॉर्म पर सारी डिकोडिंग प्रक्रिया के भीतर FFmpeg से होती है: आयात FLAC, MP3, APE, ALAC, AAC, PCM (WAV/AIFF), Ogg Vorbis, Opus, WavPack और DSD स्वीकार करता है। रिकॉर्ड में वही कोडेक रखा जाता है जो FFmpeg बाइट से बताता है, फाइल एक्सटेंशन से नहीं। आउटपुट चरण के लिए नमूने 32-bit float के रूप में निकलते हैं; नमूना फॉर्मैट बदलना ही किया जाने वाला अकेला रूपांतरण है।

आउटपुट प्लेटफॉर्म की मूल ऑडियो API है (डेस्कटॉप और iOS पर cpal के जरिए Core Audio, Android पर AAudio)। आउटपुट स्ट्रीम स्रोत की नमूना दर और चैनल संख्या पर बनाई जाती है: 96 kHz फाइल 96 kHz पर चलती है। कोई री-सैंपलिंग चरण नहीं है। हर स्ट्रीम बनाते समय डिफॉल्ट आउटपुट उपकरण फिर से चुना जाता है, इसलिए प्लेबैक सिस्टम के उपकरण बदलने का अनुसरण करता है। Android पर, हार्डवेयर-सहायित कोडेक ऑफलोडेड डिकोडिंग के लिए FFmpeg को पूरी तरह छोड़ सकते हैं।

स्ट्रीमिंग पढ़ाई

इस अनुभाग का लिंक

प्लेबैक को पूरी फाइलें नहीं चाहिए। ऑडियो एक विरल बफर से पढ़ा जाता है, जो जरूरत पड़ने पर स्थानीय फाइल, कैश या क्लाउड से बाइट रेंज लाता है। सीक करते समय लक्ष्य नमूना बाइट स्थिति में बदला जाता है, ताकि अभी तक न लाई गई जगह में सीक करने पर वहीं से लाना शुरू हो। लाने का मध्यस्थ अभी बज रहे ट्रैक की पढ़ाई को पहले से लोड होने वाले ट्रैक से ऊपर रखता है, इसलिए अगला ट्रैक मौजूदा ट्रैक को देर नहीं कराता।

खिड़कियों के रूप में ट्रैक

इस अनुभाग का लिंक

ट्रैक फाइल नहीं है; यह एक या अधिक फाइलों पर नमूना खिड़कियों की क्रमबद्ध सूची है, जो आयात के समय CUE sheet या फाइल की अपनी सीमा से बनती है। यही एक निरूपण हर डिस्क आकार को संभालता है: हर ट्रैक की अलग फाइल, पूरी डिस्क की एक image, एक फाइल के अंत और दूसरी के शुरू में पड़ा प्रीगैप, और हर ट्रैक पर काटी गई हानिपूर्ण rips।

प्रीगैप खिड़कियां चिन्हित रहती हैं। ट्रैक में प्रीगैप हो तो प्लेबैक उसी से प्रवेश करता है (index 00, छिपे हुए ट्रैक का ऑडियो शामिल), जबकि घड़ी ट्रैक का समय दिखाती है: असली ट्रैक शुरू होने तक स्थिति शून्य पर रहती है, और दिखाई गई अवधि में प्रीगैप शामिल नहीं होता, CD player के व्यवहार की तरह।

बिना अंतराल चलना

इस अनुभाग का लिंक

मौजूदा ट्रैक बजते समय अगला ट्रैक खोला और बफर किया जाता है। जब दोनों की नमूना दर और चैनल संख्या समान हों, इंजन उन्हें चल रहे ऑडियो callback के भीतर जोड़ता है: स्ट्रीम रुकती नहीं, और सीमा नमूना-स्तर पर ठीक रहती है। फॉर्मैट अलग हों तो स्ट्रीम फिर बनाई जाती है; यही वह स्थिति है जहां फॉर्मैट बदलना सीमा को सुनाई दे सकता है।

आयात, डिकोड-सत्यापन चरण के दौरान हर ट्रैक और हर एल्बम के लिए समेकित ध्वनि-स्तर (EBU R128) और वास्तविक शिखर मापता है। Replay gain इन्हीं मापों से चलाने के समय निकाला जाता है, फाइलों में कभी नहीं लिखा जाता: लक्ष्य −18 LUFS, वास्तविक शिखर क्लिप न करे इसके लिए सीमा, हर ट्रैक या हर एल्बम पर लागू, और बिना अंतराल की सीमाओं पर साफ बदलाव। यह मोड अभी सेटिंग्स UI के बिना आता है और डिफॉल्ट रूप से बंद रहता है; इसे लाइब्रेरी की config फाइल में सेट किया जा सकता है।

साइड पर ठहराव

इस अनुभाग का लिंक

ट्रैक सूचियां अपनी साइड और डिस्क संरचना साथ रखती हैं, और उपयोगकर्ता pause-between-sides चालू करे तो इंजन साइड की सीमा पर रुककर जारी रखने का संकेत दिखा सकता है। यह रुकना प्लेबैक सेवा की अवस्था है, डिकोड की गई चुप्पी नहीं, इसलिए फिर शुरू करना तुरंत होता है।