عن المشروع

يحوّل Kalinka جهاز Raspberry Pi أو أي جهاز Linux إلى مشغل موسيقى مستضاف ذاتياً يُتحكم به من الهاتف أو تطبيق سطح المكتب أو المتصفح. يحتفظ الخادم بالمكتبة، بينما يؤدي مُصيّر منفصل التشغيل بوصول مباشر إلى ALSA، لذا يمكن تشغيله على الجهاز نفسه أو على Pi بجوار كل مضخم. تبقى الملفات محلية: لا حساب، لا قياسات عن بُعد، والبحث الدلالي يعمل على الجهاز. توجد ميزتان شبكيتان اختياريتان — عمليات البحث عن البيانات الوصفية (MusicBrainz وWikidata وDeezer وCover Art Archive) وفحص إصدارات كل ساعة. تشمل خيارات التثبيت حرق صورة جاهزة لـ Raspberry Pi، وسكربت تثبيت بأمر واحد لـ Debian 13 أو Raspberry Pi OS (64-bit) أو Ubuntu 24.04، واستخدام جهاز افتراضي. يسأل معالج الإعداد في التطبيق أو المتصفح عن مكان الموسيقى ومكان إخراج الصوت، دون ملفات إعدادات للتحرير. القدرات الرئيسية: - فهرسة المكتبة مع مراقبة المجلدات وإصلاح البيانات الوصفية، بما في ذلك بصمة AcoustID عند توفير مفتاح، مع استخراج الأعمال الفنية وتخزينها مؤقتاً وتوليدها. - البحث الذكي: استعلامات باللغة الطبيعية مثل "dreamy ambient guitar" تُطابق عبر تحليل الصوت بنموذج CLAP؛ ويطابق Jamendo فهرساً مُعداً مسبقاً. اشتراك اختياري لكل إضافة. - تشغيل مثالي عبر مُصيّر C++ بوصول مباشر إلى ALSA، يدعم FLAC وMP3 حتى 192 kHz / 24-bit، وتشغيلاً متصلاً بين المقاطع المتشابهة، وعينات غير معدلة ما لم يُفعّل مستوى الصوت البرمجي. - تظهر المُصيّرات على أي جهاز شبكة كمخرجات، وتكتشف الخادم عبر mDNS، وتُحدّث نفسها. - مشغل المتصفح يجعل أي متصفح جهاز تحكم ومخرجاً في آن واحد. - الإضافات حزم Python عادية تُكتشف وقت التشغيل؛ My Library وJamendo مدمجتان، وMusicCast يتولى مستوى صوت Yamaha والطاقة. - إعدادات حية من Settings، مع طبقة بسيطة للحقول الشائعة وبحث بنمط about:config. - تحديثات ذاتية: يفحص الخادم الإصدارات كل ساعة ويمكنه الترقية التلقائية خلال ساعات الهدوء أثناء إيقاف التشغيل؛ يتحدث الخادم والإضافات ومشغل المتصفح والمُصيّرات معاً، والمُصيّرات أولاً. المتطلبات: نظام تشغيل 64-bit (arm64 أو amd64). يحتاج التشغيل والمكتبة إلى Raspberry Pi 3 / Zero 2 W أو أي جهاز arm64/amd64 بذاكرة 512 MB (1 GB مريح). يحتاج البحث الذكي إلى Raspberry Pi 4B بذاكرة 2 GB أو أي جهاز arm64/amd64 بذاكرة 2 GB+، مع نحو 1 GB مساحة إضافية؛ ويمكن تفعيله أو تعطيله لكل تثبيت. يعتمد السلوك المثالي على المُصيّر. يتحدث مُصيّر C++ الافتراضي إلى بطاقة الصوت مباشرة ولا يعدل الصوت إلا عند الطلب؛ مستوى الصوت البرمجي هو الاستثناء. يوضح التطبيق ما إذا كان المسار 1:1: يأخذ hw: العينات دون تغيير، ويعيد plughw: أخذ العينات وتنسيقها، وdefault أو خادم صوت يخلط. يمر تشغيل المتصفح عبر مكدس صوت المتصفح، لذا لا يضمن التشغيل المتصل أو المثالي. تغطي الوثائق التثبيت، وإعداد أول تشغيل، ودليل التطبيق، والبنية، والتطوير، وتصميم المُصيّر، وصور الأجهزة، والإصدار. يدعو المشروع إلى ملاحظات الاختبار في سلسلة النقاش. الشيفرة المصدرية بترخيص GPL-3.0-or-later؛ الأصول البصرية تستخدم ترخيصاً منفصلاً يتطلب إذن المؤلف. تُدرج شروط الأطراف الثالثة في THIRD-PARTY-NOTICES.md.