عن المشروع

projectM هي إعادة تنفيذ مفتوحة المصدر لعارض Winamp Milkdrop الكلاسيكي من Geiss، معبأة كمكتبة حديثة قابلة لإعادة الاستخدام عبر المنصات. الغرض منها هو قراءة الإدخال الصوتي، واكتشاف الإيقاع وتحليل بيانات PCM باستخدام FFT، وتطبيق معادلات ومعلمات بأسلوب Milkdrop، وعرض النتائج المرئية عبر OpenGL. تُعرَّف العروض بواسطة تظليلات البكسل ومعادلات بأسلوب Milkdrop، والمشروع متوافق مع المجموعة الكبيرة من عروض Milkdrop التي ساهم بها المستخدمون. يحتوي هذا المستودع فقط على libprojectM، وهي المكتبة المشتركة/الثابتة المخصصة لتطوير التطبيقات. الواجهات الأمامية والإضافات والأدوات الأخرى موجودة في مستودعات منفصلة. الإصدارات هنا هي إصدارات كود المصدر والملفات الثنائية لمكتبات التطوير والملفات الرأسية، وليست تنزيلات للمستخدم النهائي. يمكن للمكتبة العرض إلى سياق OpenGL مخصص أو إلى نسيج. تقوم بتحليل العروض، وتحليل بيانات PCM الصوتية مع اكتشاف النبض وFFT، وتطبيق العروض على بيانات الميزات الصوتية، وعرض المخرجات. تعتمد المكتبة الأساسية بشكل رئيسي على OpenGL. توجد واجهات أمامية للمستخدم النهائي لأنظمة Windows وmacOS وLinux وAndroid وXbox/Windows Phone، بما في ذلك تطبيق SDL مستقل (projectMSDL)، وواجهة أمامية Rust SDL، وتطبيق سطح مكتب قائم على Qt لنظام Linux مع خلفيات PipeWire وPulseAudio وJACK، وإضافة GStreamer، وإضافة Apple Music، وإصدارات Steam/Windows Store. تشير ملفات README إلى أن العديد من هذه الواجهات الأمامية هي معاينات تطوير قد لا تكون مكتملة الميزات وقد تحتوي على أخطاء، وأن تطبيقات Android ليست من إنشاء أو دعم مطوري projectM. المكتبة نفسها تُشحن بدون عروض. تُحتفظ حزم العروض في مستودعات منفصلة، بما في ذلك حزمة نسيج Milkdrop الأساسية، وحزمة Cream of the Crop (حوالي 10 آلاف عرض، الافتراضي الحالي)، وعروض projectM الكلاسيكية (أكثر من 4 آلاف)، وعروض Milkdrop 2 الأصلية، وعروض En D. كما يُشار إلى حزمة MegaPack التي تحتوي على أكثر من 130 ألف عرض. تم دمج projectM في تطبيقات طرف ثالث مثل Kodi وHelix وSilverjuke وVLC Media Player، على الرغم من أن هذه التكاملات ليست مطورة أو مدعومة من فريق projectM. تغطي تعليمات البناء CMake وEmscripten/WebAssembly والوثائق المطورة في الويكي. المكتبة الأساسية مُصدرة بموجب رخصة GNU Lesser General Public License 2.1، مما يسمح باستخدامها في التطبيقات مغلقة المصدر كمكتبة مشتركة بموجب شروط الرخصة. قد تستخدم المشاريع المنبع والمصب تراخيص مختلفة. الدعم المجتمعي متاح عبر Discord، وتُقبل المساهمات من خلال طلبات السحب والقضايا.