OpenAL

OpenAL ( مكتبة الصوت المفتوحة [ 3 ] [ 4 ] ) هي واجهة برمجة تطبيقات صوتية متعددة المنصات . صُممت لعرض الصوت المكاني ثلاثي الأبعاد متعدد القنوات بكفاءة عالية. يُحاكي أسلوبها وقواعدها في واجهة برمجة التطبيقات تلك الخاصة بـ OpenGL . تُعد OpenAL مكتبة صوتية ثلاثية الأبعاد بيئية ، تُضفي واقعية على ألعاب الفيديو أو البيئات الافتراضية الأخرى من خلال محاكاة التوهين (تدهور الصوت مع المسافة)، وتأثير دوبلر (تغير التردد نتيجة الحركة)، وكثافة المواد.

كان الهدف الأصلي من OpenAL أن يكون معيارًا مفتوحًا وبديلًا مفتوح المصدر لواجهات برمجة تطبيقات الصوت ثلاثي الأبعاد الاحتكارية (وغير المتوافقة عمومًا فيما بينها) مثل DirectSound و Core Audio ، إلا أنه في الواقع تم تطبيقه على نطاق واسع على منصات مختلفة كغلاف برمجي حول واجهات برمجة التطبيقات الاحتكارية المذكورة أو كنسخة معدلة احتكارية خاصة بمورد معين. وبينما أصبح التطبيق المرجعي لاحقًا احتكاريًا وغير مدعوم، تتوفر تطبيقات مفتوحة المصدر مثل OpenAL Soft .

تاريخ

طُوِّر برنامج OpenAL في الأصل عام 2000 بواسطة شركة Loki Software لمساعدتها في نقل ألعاب ويندوز إلى لينكس . [ 5 ] بعد توقف شركة Loki، تولى مجتمع البرمجيات الحرة / المفتوحة المصدر صيانة المشروع لفترة من الزمن ، وتم تنفيذه على بطاقات الصوت واللوحات الأم NVIDIA nForce. استضافته (وطورته بشكل كبير) شركة Creative Technology حتى عام 2012 تقريبًا.

منذ الإصدار 1.1 (2009)، أصبح تطبيق Creative التجريبي ملكية خاصة، مع بقاء الإصدارات الأخيرة المرخصة مجانًا متاحة عبر مستودع شفرة المصدر الخاص بالمشروع على منصة Subversion . ومع ذلك، يُعد OpenAL Soft بديلاً مفتوح المصدر واسع الانتشار، ويستمر صيانته وتطويره بشكل فعال.

بينما ينص ميثاق OpenAL على أنه سيكون هناك "مجلس مراجعة معمارية" (ARB) على غرار مجلس مراجعة معمارية OpenGL، لم يتم تشكيل مثل هذه المنظمة على الإطلاق، ويتم التعامل مع مواصفات OpenAL ومناقشتها بشكل عام عبر البريد الإلكتروني على قائمتها البريدية العامة.

كانت القائمة البريدية الأصلية، openal-devel، التي استضافتها شركة Creative، تعمل من مارس 2003 إلى حوالي أغسطس 2012. [ 6 ] بدأ ريان سي. جوردون، وهو أحد قدامى محاربي Loki الذي قام بتطوير Simple DirectMedia Layer ، قائمة بريدية وموقعًا إلكترونيًا جديدين على OpenAL.org في يناير 2014. [ 7 ] اعتبارًا من فبراير 2023، لا تزال القائمة قيد الاستخدام.

بنية ووظائف واجهة برمجة التطبيقات (API)

تُشفّر الوظائف العامة لـ OpenAL في كائنات المصدر ، ومخازن الصوت المؤقتة، ومستمع واحد . يحتوي كائن المصدر على مؤشر إلى مخزن مؤقت، وسرعة الصوت وموقعه واتجاهه، وشدته. أما كائن المستمع فيحتوي على سرعة الصوت وموقعه واتجاهه، بالإضافة إلى مستوى التضخيم العام المطبق على جميع الأصوات. تحتوي المخازن المؤقتة على بيانات صوتية بتنسيق PCM ، إما 8 أو 16 بت ، وبتنسيق أحادي أو ستيريو . يقوم محرك العرض بإجراء جميع الحسابات اللازمة لتوهين المسافة، وتأثير دوبلر ، وما إلى ذلك.

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

بخلاف مواصفات OpenGL، تتضمن مواصفات OpenAL قسمين فرعيين من واجهة برمجة التطبيقات (API) : القسم الأساسي الذي يتألف من استدعاءات دوال OpenAL الفعلية، وواجهة برمجة تطبيقات ALC (سياق مكتبة الصوت) التي تُستخدم لإدارة سياقات العرض، واستخدام الموارد، والتأمين بطريقة متوافقة مع مختلف المنصات. كما توجد مكتبة ALUT (مجموعة أدوات مكتبة الصوت المساعدة) التي توفر دوالًا "مُيسِّرة" عالية المستوى، تُشابه تمامًا مكتبة GLUT في OpenGL .

بهدف توفير وظائف إضافية في المستقبل، تستخدم OpenAL آلية التوسعة. وبذلك، يُمكن للموردين إضافة توسعاتهم الخاصة إلى توزيعات OpenAL، عادةً بهدف إتاحة وظائف إضافية على أجهزتهم الخاصة. يُمكن ترقية التوسعات إلى حالة ARB (مجلس مراجعة البنية)، مما يُشير إلى توسعة قياسية سيتم الحفاظ عليها لضمان التوافق مع الإصدارات السابقة. ومن المُحتمل إضافة توسعات ARB إلى واجهة برمجة التطبيقات الأساسية بعد فترة زمنية مُحددة.

للحصول على معالجة متقدمة للإشارات الرقمية وتأثيرات صوتية معجلة بواسطة الأجهزة، يمكن استخدام EFX (امتداد التأثيرات) أو امتدادات الصوت البيئي (EAX).

القيود

يُصمّم نموذج المستمع الواحد في OpenAL خصيصًا لمستخدم بشري واحد، ولا يُناسب الذكاء الاصطناعي أو المحاكاة الروبوتية أو حتى مشاركة عدة أشخاص كما في العروض الموسيقية التعاونية. [ 8 ] في هذه الحالات، يلزم نموذج مستمعين متعددين. كما يُغفل OpenAL تأخيرات انتشار الصوت ( حيث تُستخدم سرعة الصوت لتأثير دوبلر فقط). وتُترجم المسافة إلى مصدر الصوت إلى تأثير في السعة (التوهين) فقط، وليس إلى تأخير. لذا، لا يُمكن استخدام OpenAL لحساب فرق وقت الوصول إلا إذا أُضيفت هذه الخاصية بشكل منفصل. [ 9 ]

للاستفادة الكاملة من سرعة OpenAL، يلزم وجود تطبيق خاص بالمورد/الجهاز، ونادرًا ما تُنشر هذه التطبيقات كمصدر مفتوح. في الواقع، تُطبّق العديد من المنصات المدعومة OpenAL كغلاف برمجي يُترجم ببساطة استدعاءات واجهة برمجة تطبيقات الصوت الأصلية للمنصة، والتي غالبًا ما تكون خاصة بها. في نظام Windows، إذا لم يتم اكتشاف تطبيق خاص بالمورد، فسيتم الرجوع إلى مكتبة wrap_oal.dll التي تُترجم OpenAL إلى DirectSound (برنامج عام) أو DirectSound3D (جهاز عام)؛ وقد أدى حذف الأخير بدءًا من Windows Vista إلى تعطيل تسريع الأجهزة العامة في الإصدارات الحديثة من Windows. [ 10 ] [ 11 ]

المنصات المدعومة

تتوفر واجهة برمجة التطبيقات (API) على المنصات وأنظمة التشغيل التالية : [ 12 ] أندرويد (يدعم OpenSL ESAmigaOS 3.x و4.x، [ 13 ] Bada ، BlackBerry 10 ، [ 14 ] BlackBerry PlayBook ، BSD ، iOS (يدعم Core AudioIRIX ، لينكس (يدعم ALSA و OSS و PortAudio و PulseAudioMac OS 8 و Mac OS 9 و Mac OS X ( يدعم Core Audioمايكروسوفت ويندوز (يدعم DirectSound و Windows Multimedia API وWindows Multimedia Device API)، MorphOS ، OpenBSD ، [ 15 ] Solaris و QNX و AROS . [ 16 ]

الأجهزة المدعومة للألعاب هي على سبيل المثال: GameCube و PlayStation 2 و PlayStation 3 و Xbox و Xbox 360 و Wii و PlayStation Portable .

التطبيقات

ألعاب

من المعروف أن ألعاب الفيديو التالية تستخدم OpenAL:

تطبيقات أخرى

التطبيقات

OpenAL SI
يُعد تطبيق OpenAL Sample Implementation هو التطبيق الأصلي، من Loki، ولا يتم صيانته حاليًا.
أوبن إيه إل سوفت
OpenAL Soft هو تطبيق برمجي متعدد المنصات مرخص بموجب رخصة LGPL. تهدف هذه المكتبة إلى أن تكون تحديثًا/بديلًا مجانيًا ومتوافقًا لتطبيق OpenAL Sample Implementation الذي أصبح الآن قديمًا واحتكاريًا. يدعم OpenAL Soft مخرجات الصوت أحادي القناة، وستيريو (بما في ذلك HRTF وUHJ)، ورباعي القنوات، و5.1، و6.1، و7.1، بالإضافة إلى مخرجات B-Format. كما يدعم أيضًا ملفات الصوت المحيطي (Ambisonic). [ 31 ] [ 32 ]
AeonWave-OpenAL
AeonWave-OpenAL هي طبقة محاكاة OpenAL مرخصة بموجب رخصة LGPL، تستفيد من تسريع الأجهزة الذي توفره مكتبة AeonWave الصوتية رباعية الأبعاد (4D) منخفضة التكلفة، والمخصصة لأنظمة Linux وWindows، والتي طورتها شركة Adalin BV. يدّعي مطورها أن تطبيق AeonWave-OpenAL يُشغّل الصوت ثلاثي الأبعاد أسرع بخمس مرات (على معالج AMD Athlon 64 X2 ) إلى سبع مرات (على معالج Intel Atom N270 ) من OpenAL SI أو OpenAL Soft في نفس الظروف. [ 33 ] باستخدام مكتبة AeonWave، يدعم هذا التطبيق تقنية HRTF بالإضافة إلى الصوت المحيطي المكاني لما يصل إلى ثمانية مكبرات صوت.
برنامج تشغيل Rapture3D OpenAL
برنامج تشغيل Rapture3D OpenAL هو برنامج تجاري غير مجاني ، يعمل على نظام ويندوز فقط، من تطوير شركة Blue Ripple Sound . تهدف هذه المكتبة إلى أن تكون بديلاً عالي الأداء وسهل الاستخدام للتطبيقات الأخرى. وتشمل ميزاته: [ 34 ]
  • مسار صوتي بنظام الفاصلة العائمة 32 بت.
  • تحويل معدل أخذ العينات عالي الجودة (يستخدم لأغراض مختلفة بما في ذلك انزياح دوبلر).
  • مؤثرات وفلاتر عالية الجودة.
  • دعم مصادر الصوت متعددة القنوات (بما في ذلك الأصول المشفرة باستخدام Ambisonics ).
  • الحد الوحيد لعدد المصادر أو التأثيرات هو قوة المعالج، ويمكنه عرض مئات من مصادر الصوت وتأثيرات متعددة على أجهزة قديمة نسبياً.
  • ناقل الصوت المحيطي عالي الترتيب (HOA) الذي يعمل حتى الترتيب الرابع.
Apple OpenAL [ 35 ]
تُضمّن شركة آبل تطبيقًا لتقنية OpenAL في نظامي macOS وiOS. وهو عبارة عن طبقة رقيقة جدًا فوق ميزة 3D Mixer (kAudioUnitSubType_3DMixer) في نظام التشغيل. وقد طُوّر هذا التطبيق في الأصل بواسطة رايان سي. جوردون لأنظمة Altivec Mac OS X. [ 36 ]
موجوال
تطبيق OpenAL 1.1 كامل صغير الحجم (ملف واحد) مبني على SDL2 بواسطة Ryan C. Gordon. [ 37 ]

انظر أيضاً

مراجع

  1. "OpenAL: صوت ثلاثي الأبعاد متعدد المنصات" . openal.org .
  2. "رخصة OpenAL" . مؤرشفة من الأصل في 30 ديسمبر 2012. تم الاطلاع عليها في 10 نوفمبر 2012 .
  3. هول، جون (2001). برمجة ألعاب لينكس . دار نشر نو ستارش. ص 63. ISBN  978-1-886411-49-4.
  4. وايلد، مارتن (2004). برمجة الصوت للألعاب التفاعلية . تايلور وفرانسيس. ص 11. ISBN  978-1-136-12581-2.
  5. "بيان صحفي بخصوص OpenAL" (بيان صحفي). مؤرشف من الأصل بتاريخ 2016-03-06 . تم الاطلاع عليه بتاريخ 2011-07-18 .
  6. "استعلام عن بادئة Wayback Machine: أرشيف openal-devel" . تم الاسترجاع في 25 أبريل 2023 .{{cite web}}يستخدم Cite عنوانًا عامًا ( مساعدة ) فهرس الأرشيف في Wayback Machine
  7. "أرشيف OpenAL لشهر يناير 2014 حسب الموضوع" . openal.org .
  8. ووزنيفسكي، مايك؛ سيتل، زاك؛ كوبرستوك، جيريمي (2007). "عرض الصوت المخصص للمستخدم والصوت القابل للتوجيه للبيئات الافتراضية الموزعة" (ملف PDF) . وقائع المؤتمر الدولي للعروض الصوتية (ICAD) . تم الاطلاع عليه بتاريخ 5 أغسطس 2012 .
  9. لعبة إطلاق نار من منظور الشخص الأول مفتوحة المصدر Alien Arena 2009، رقم الإصدار #28412367
  10. التعداد باستخدام OpenAL على نظام التشغيل Windows
  11. OpenAL® و Windows Vista™
  12. "OpenAL – Platforms" . تم الاطلاع عليه في 10 مايو 2012 .
  13. "نسخة مؤرشفة" . se.aminet.net . مؤرشفة من الأصل بتاريخ 16 مارس 2018. تم الاطلاع عليها بتاريخ 6 يونيو 2022 .{{cite web}}: CS1 maint: archived copy as title ( link )
  14. "blackberry/OpenAL 路 GitHub" . Github.com . تم الاطلاع عليه بتاريخ 14 يناير 2013 .
  15. "OpenAL لنظام OpenBSD" . مؤرشف من الأصل بتاريخ 18-03-2012 . تم الاطلاع عليه بتاريخ 18-07-2011 .
  16. "OpenAL/alut/ogg/vorbis [ منتدى – التطوير (عام)" . AROS-Exec. مؤرشف من الأصل في 26 مايو 2013. تم الاطلاع عليه في 16 يونيو 2013 .
  17. "نظرة عامة" . معلومات اللعبة 0 ميلادي . ألعاب وايلدفاير. مؤرشف من الأصل في 26 سبتمبر 2013. تم الاسترجاع في 5 ديسمبر 2012 .
  18. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 "ألعاب " . OpenAL.org .
  19. 1 2 "منتدى برمجيات SCS" . مؤرشف من الأصل في 5 يونيو 2019. تم الاطلاع عليه في 5 يونيو 2019 .
  20. "محرك HPL - قاعدة بيانات التعديلات" . 11 مايو 2010. تم الاطلاع عليه في 20 نوفمبر 2012 .
  21. "استكشاف الأخطاء وإصلاحها: إعادة تثبيت OpenAL : Beamdog" . تم الاطلاع عليه بتاريخ 29 مايو 2014 . 
  22. "Bit.Trip Runner - PCGamingWiki" . تم الاطلاع عليه بتاريخ 8 أكتوبر 2022 .
  23. "موقع ioquake3 الإلكتروني" .
  24. "صوت التموج الأزرق" . تم الاطلاع عليه بتاريخ 23 سبتمبر 2017 .
  25. "صوت التموج الأزرق" . تم الاطلاع عليه بتاريخ 23 سبتمبر 2017 .
  26. "ألعاب التعديل" . مؤرشف من الأصل في 6 سبتمبر 2012.
  27. "ألعاب OpenAL المتوافقة" . صوت بلو ريبل .
  28. "محرك فاندا" . مؤرشف من الأصل بتاريخ 2017-05-09 . تم الاطلاع عليه بتاريخ 2017-05-18 .
  29. ثالمان، فلوريان؛ غايلي، ماركوس (2006). "مربى الغد: توليد موسيقى تعاوني في لعبة الكروكيه باستخدام OpenAL". مربى الغد: توليد موسيقى تعاوني في لعبة الكروكيه باستخدام OpenAL - منشور مؤتمر IEEE . الصفحات 73-78 . CiteSeerX 10.1.1.67.8139 . doi : 10.1109/C5.2006.22 . ISBN   978-0-7695-2563-1. S2CID 5577203 . 
  30. لامبرز، مارتن. "بينو: مشغل فيديو ثلاثي الأبعاد مجاني - حول" . bino3d.org .
  31. "OpenAL Soft – برنامج الصوت ثلاثي الأبعاد" . openal-soft.org . تم الاطلاع عليه في 4 يناير 2014 .
  32. "مستودع OpenAL Soft Git" . تم الاطلاع عليه بتاريخ 26 ديسمبر 2013 .
  33. هوفمان، إريك (9 مايو 2012). " إعلان [ Openal-devel ] : إصدار AeonWave-OpenAL 1.1.7 " . تم الاطلاع عليه في 9 ديسمبر 2012. أظهرت الاختبارات أن AeonWave-OpenAL يُعالج الصوت أسرع بخمس مرات (على معالج AMD Athlon-64 X2) وما يصل إلى سبع مرات (على معالج Intel Atom-N270) من كلٍ من OpenAL-Soft وOpenAL-Sample. يُوفر معالجة 32 صوتًا على معالج Atom-N270 (الحد الأقصى لـ OpenAL-Soft) واطًا واحدًا من استهلاك الطاقة المستمر وفقًا لبرنامج powertop.{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  34. "المطورون" . شركة بلو ريبل ساوند المحدودة. 2009. تم الاطلاع عليه في 24 يناير 2011 .
  35. "متصفح المصدر" .
  36. "تطبيق OpenAL لنظام التشغيل MacOS X" . icculus.org .
  37. "MojoAL" . icculus.org .

التطبيقات:

موارد المطورين:

  • دروس DevMaster.net OpenAL (ملاحظة: هذه الدروس تظهر قدمها قليلاً، على سبيل المثال، باستخدام وظائف مهملة مثل alutLoadWAVFile)
  • مستودع ملحقات OpenAL (يُشرف عليه Raulshc اعتبارًا من عام 2023؛ مع جدول بالملحقات المدعومة لكل تطبيق)
  • حزمة OpenAL في Conan، مدير حزم C++