تخط إلى المحتوى

محرك التشغيل

عقد محرك التشغيل هو الوفاء للمصدر: فك بايتات المستخدم الأصلية، بمعدل المصدر نفسه، مع بقاء بنية الإصدار كما هي. هذه الصفحة هي المواصفة خلف ذلك.

كل فك الترميز FFmpeg، داخل العملية، على كل منصة: FLAC، MP3، APE، ALAC، AAC، PCM (WAV/AIFF)، Ogg Vorbis، Opus، WavPack، وDSD هي ما يقبله الاستيراد، وأي ما يبلغه FFmpeg من البايتات، لا امتداد الملف، هو codec المسجل. تخرج العينات كـ 32-bit float لمرحلة الخرج؛ وتحويل صيغة العينة هو التحويل الوحيد المنفذ.

الخرج هو audio API الأصلي للمنصة (Core Audio عبر cpal على سطح المكتب وiOS، وAAudio على Android). يُضبط تدفق الخرج على معدل عينة المصدر وعدد قنواته: ملف 96 kHz يُشغَّل عند 96 kHz. لا توجد مرحلة إعادة أخذ عينات. يُحل جهاز الخرج الافتراضي عند كل بناء تدفق، لذلك يتبع التشغيل تبديلات أجهزة النظام. على Android، تستطيع codecs المدعومة عتاديًا تجاوز FFmpeg بالكامل لفك ترميز offloaded.

لا يحتاج التشغيل إلى ملفات كاملة. يُقرأ الصوت عبر ذاكرة مؤقتة متفرقة تجلب نطاقات بايت عند الطلب، من ملف محلي، أو الذاكرة المخبأة، أو السحابة، ويربط البحث العينة الهدف بموضع بايت حتى يجلب البحث داخل منطقة غير مجلوبة من هناك. يعطي منسق الجلب أولوية لقراءات المسار الجاري على التحميل المسبق، لذلك لا يؤخر مسار قادم المسار الحالي.

المسارات كنوافذ

رابط إلى هذا القسم

المسار ليس ملفًا؛ بل قائمة مرتبة من نوافذ عينات فوق ملف واحد أو أكثر، مبنية عند الاستيراد من CUE sheet أو امتداد الملف نفسه. يحمل هذا التمثيل الواحد كل شكل قرص: ملف لكل مسار، وقرص كامل في صورة واحدة، وpregap يعيش في نهاية ملف وبداية آخر، ونسخ فاقدة تقطع ملفًا لكل مسار.

تُعلّم نوافذ pregap كذلك. يدخل التشغيل مسارًا عند pregap عندما يملك واحدًا (index 00، مع صوت المسار المخفي) بينما تعرض الساعة وقت المسار: يُثبت الموضع عند الصفر حتى يبدأ المسار الفعلي، وتستبعد المدة المعروضة pregap، مطابقًا لسلوك مشغل CD.

يُفتح المسار التالي ويُخزن مؤقتًا أثناء تشغيل الحالي. عندما يشتركان في معدل العينة وعدد القنوات، يصل المحرك بينهما داخل رد نداء الصوت الحي: لا يتوقف التدفق، والحد دقيق على مستوى العينة. عندما تختلف الصيغ، يُعاد بناء التدفق، وهي الحالة التي يجعل فيها تغيير الصيغة الحد مسموعًا على أي حال.

يقيس الاستيراد الجهارة المتكاملة (EBU R128) وtrue peak، لكل مسار ولكل ألبوم، أثناء مرور التحقق من فك الترميز. يُشتق replay gain من تلك القياسات وقت التشغيل، ولا يُخبز في الملفات أبدًا: هدف −18 LUFS، ومحدود حتى لا تقطع true peak، ومطبق لكل مسار أو لكل ألبوم، وينتقل بدقة عند الحدود بلا فجوات. يأتي الوضع حاليًا بلا واجهة إعدادات وافتراضيًا متوقف؛ ويمكن ضبطه في ملف إعداد المكتبة.

توقفات الجوانب

رابط إلى هذا القسم

تحمل قوائم المسارات بنية الجانب والقرص، ويستطيع المحرك الوقوف عند حد جانب، مع إظهار طلب متابعة، عندما يفعّل المستخدم pause-between-sides. الوقوف حالة في خدمة التشغيل، لا صمت مفكك الترميز، لذلك يكون الاستئناف فوريًا.