بيور داتا
بيور داتا ( Pd ) هي لغة برمجة مرئية طوّرها ميلر بوكيت في التسعينيات لإنشاء موسيقى حاسوبية تفاعلية وأعمال وسائط متعددة . على الرغم من أن بوكيت هو المؤلف الرئيسي للبرنامج، إلا أن Pd مشروع مفتوح المصدر يتمتع بقاعدة مطورين واسعة تعمل على تطوير إضافات جديدة. يتم إصداره بموجب ترخيص BSD-3-Clause . يعمل على أنظمة لينكس ، وماك أو إس ، وآي أو إس ، وأندرويد ، وويندوز . كما توجد نسخ منه لأنظمة فري بي إس دي وآي آر آي إكس .
تتشابه لغة Pd إلى حد كبير في نطاقها وتصميمها مع برنامج Max الأصلي الذي طوره بوكيت أثناء عمله في مركز IRCAM ، وهي متوافقة إلى حد ما مع Max/MSP، البرنامج التجاري الذي خلف لغة Max. ويمكن مناقشتها مجتمعةً كأعضاء في عائلة لغات Patcher [ 2 ] .
مع إضافة بيئة الرسومات للوسائط المتعددة الخارجية (GEM)، والبرامج الخارجية المصممة للعمل معها (مثل Pure Data Packet / PiDiP لنظامي التشغيل Linux و Mac OS X )، و framestein لنظام التشغيل Windows، و GridFlow (كمعالجة مصفوفة متعددة الأبعاد، لأنظمة التشغيل Linux و Mac OS X و Windows)، أصبح من الممكن إنشاء ومعالجة الفيديو ورسومات OpenGL والصور وما إلى ذلك في الوقت الفعلي مع إمكانيات واسعة للتفاعل مع الصوت وأجهزة الاستشعار الخارجية وما إلى ذلك.
صُمم برنامج Pd خصيصًا لتمكين التعاون المباشر عبر الشبكات أو الإنترنت، مما يسمح للموسيقيين المتصلين عبر شبكة محلية أو حتى في أماكن متباعدة من العالم بإنشاء الموسيقى معًا في الوقت الفعلي. يستخدم Pd بروتوكول FUDI للشبكات.
أوجه التشابه مع ماكس
تُعدّ كلٌّ من Pure Data و Max مثالين على لغات برمجة تدفق البيانات . تُصمّم لغات تدفق البيانات البرنامج على شكل رسم بياني مُوجّه للبيانات المتدفقة بين العمليات. في Pure Data وMax، يتم ربط الدوال أو "الكائنات" معًا في بيئة رسومية تُحاكي تدفق التحكم والصوت. على عكس الإصدار الأصلي من Max، صُمّمت Pd دائمًا لإجراء معالجة معدل التحكم والصوت على وحدة المعالجة المركزية (CPU) الخاصة بالمضيف ، بدلًا من تفريغ توليف الصوت ومعالجة الإشارة إلى لوحة معالج الإشارات الرقمية (DSP) (مثل Ariel ISPW التي استُخدمت في Max/FTS). يُشكّل كود Pd أساس امتدادات MSP التي طوّرها ديفيد زيكاريلي للغة Max لإجراء معالجة الصوت البرمجية. [ 3 ]
مثل Max، يتميز Pd بقاعدة بيانات برمجية معيارية تتكون من عناصر خارجية أو كائنات تُستخدم كعناصر بناء للبرامج المكتوبة بلغة Pd. هذا يجعل البرنامج قابلاً للتوسيع بشكل كبير من خلال واجهة برمجة تطبيقات عامة (API) ، ويشجع المطورين على إضافة إجراءات التحكم والصوت الخاصة بهم بلغة البرمجة C ، أو باستخدام عناصر خارجية أخرى، بلغات Python و Scheme و Lua و Tcl وغيرها الكثير. مع ذلك، يُعد Pd أيضًا لغة برمجة. تُستخدم وحدات برمجية معيارية قابلة لإعادة الاستخدام، مكتوبة بلغة Pd، تُسمى "التصحيحات" أو "التجريدات"، كبرامج مستقلة ويتم مشاركتها مجانًا بين مستخدمي Pd، ولا تتطلب أي مهارات برمجية أخرى لاستخدام Pd بفعالية.
خصائص اللغة

مثل برنامج Max، تُعدّ Pd لغة برمجة تعتمد على تدفق البيانات. وكما هو الحال في معظم برامج معالجة الإشارات الرقمية ، هناك معدلان رئيسيان لتمرير البيانات: معدل أخذ العينات (الصوت) ، والذي يبلغ عادةً 44100 عينة في الثانية، ومعدل التحكم، بمعدل كتلة واحدة لكل 64 عينة. تتدفق رسائل التحكم وإشارات الصوت عمومًا من أعلى الشاشة إلى أسفلها بين "الكائنات" المتصلة عبر منافذ الإدخال والإخراج.
يدعم Pd أربعة أنواع أساسية من الكيانات النصية: الرسائل، والكائنات، والذرات، والتعليقات. الذرات هي الوحدة الأساسية للبيانات في Pd، وتتكون إما من عدد عشري ، أو رمز، أو مؤشر إلى بنية بيانات (في Pd، تُخزَّن جميع الأرقام كأعداد عشرية 32 بت). تتكون الرسائل من ذرة واحدة أو أكثر، وتُقدِّم تعليمات للكائنات. يُستخدم نوع خاص من الرسائل، يُسمى " بانغ" ، ذو محتوى فارغ ، لبدء الأحداث ودفع البيانات إلى التدفق، تمامًا مثل الضغط على زر.
تتراوح الكائنات الأصلية في Pd من العمليات الرياضية والمنطقية الأساسية ، وعمليات البت ، الموجودة في العديد من لغات البرمجة، إلى وظائف معالجة الإشارات الرقمية (DSP) العامة والمتخصصة لمعدل الصوت (المشار إليها برمز المد (~))، مثل مذبذبات جدول الموجات ، وتحويل فورييه السريع (fft~)، ومجموعة من المرشحات القياسية . يمكن تحميل البيانات من ملف، أو قراءتها من لوحة صوتية، أو MIDI ، أو عبر بروتوكول التحكم الصوتي المفتوح (OSC) من خلال اتصال FireWire أو USB أو الشبكة، أو إنشاؤها ديناميكيًا وتخزينها في جداول، والتي يمكن قراءتها لاحقًا واستخدامها كإشارات صوتية أو بيانات تحكم.
هياكل البيانات
من أبرز الابتكارات في برنامج Pd مقارنةً بالإصدارات السابقة هو إدخال هياكل البيانات الرسومية . ويمكن استخدام هذه الهياكل بطرق متنوعة، بدءًا من تأليف النوتات الموسيقية، وتسلسل الأحداث، وصولًا إلى إنشاء رسومات مصاحبة لبرامج Pd أو حتى توسيع واجهة المستخدم الرسومية لبرنامج Pd .
كما يوحي اسمها، تُمكّن هياكل البيانات مستخدمي Pd من إنشاء تمثيلات رسومية ثابتة أو ديناميكية أو متحركة للبيانات الموسيقية، مهما بلغت درجة تعقيدها. وكما هو الحال في هياكل لغة C ، تتكون هياكل Pd من أي مزيج من الأعداد العشرية والرموز وبيانات المصفوفات، والتي يمكن استخدامها كمعاملات لوصف المظهر المرئي لهيكل البيانات، أو للتحكم في الرسائل والإشارات الصوتية في برنامج Pd. وبعبارة أخرى، كما يقول بوكيت:
صُمم برنامج Pd ليوفر بيئة غير منظمة للغاية لوصف هياكل البيانات ومظهرها الرسومي. وتتمثل الفكرة الأساسية في تمكين المستخدم من عرض أي نوع من البيانات التي يرغب بها، وربطها بأي شكل من الأشكال بالعرض. ولتحقيق ذلك، يقدم Pd هيكل بيانات رسوميًا، يشبه إلى حد ما هيكل البيانات في لغة البرمجة C، ولكنه مزود بإمكانية إضافة أشكال وألوان إلى البيانات، بحيث يمكن للمستخدم تصورها و/أو تعديلها. ويمكن تعديل البيانات نفسها من الصفر، أو استيرادها من ملفات، أو توليدها خوارزميًا، أو استخلاصها من تحليلات الأصوات الواردة أو تدفقات البيانات الأخرى.
— ميلر بوكيت [ 4 ]

القيود اللغوية
على الرغم من قوة لغة Pd، إلا أنها تعاني من بعض القيود في تطبيق مفاهيم البرمجة الكائنية. [ 5 ] فعلى سبيل المثال، يصعب إنشاء عمليات متوازية ضخمة لأن إنشاء ومعالجة قوائم كبيرة من الكائنات (التوليد، وما إلى ذلك) أمر مستحيل لعدم وجود دالة إنشاء. علاوة على ذلك، فإن مصفوفات Pd وغيرها من الكيانات عرضة لتضارب أسماء النطاقات لأن تمرير مُعرّف مثيل التصحيح يُعد خطوة إضافية، وقد يكون تنفيذه صعبًا في بعض الأحيان.
مشاريع باستخدام برنامج Pure Data
استُخدمت لغة Pure Data كأساس لعدد من المشاريع، كلغة للنماذج الأولية ومحرك صوتي. تعتمد واجهة الجدول المسماة Reactable [ 6 ] وتطبيق RjDj المهجور لأجهزة iPhone على Pure Data كمحرك صوتي.
استُخدمت لغة Pd في تصميم نماذج أولية للصوت في ألعاب الفيديو من قِبل عدد من مصممي الصوت. على سبيل المثال، EAPd هي النسخة الداخلية من Pd المستخدمة في شركة Electronic Arts (EA). كما تم دمجها في لعبة EA Spore . [ 7 ]
كما تم استخدام Pd في الأداء الشبكي، في مكتبة الموارد الشبكية للارتجال التعاوني (NRCI). [ 8 ]
أمثلة على التعليمات البرمجية
- نماذج تصحيحات برمجية مرئية لبرنامج Pure Data
التحديث 1: برنامج "مرحباً بالعالم" في Pd.
التحديث الثاني: صدى الصوت في Pd.
التحديث 3: المرشحات وتدفق البيانات في Pd.
- تقوم الرقعة الأولى بطباعة عبارة "مرحباً بالعالم" على الشاشة.
- تقوم الرقعة الثانية بتطبيق صدى على الإشارة الواردة من القناة 1، ثم تبثها على القناتين 1 و2.
- تقوم الرقعة الأخيرة، الأكثر تعقيدًا، بتصفية الضوضاء البيضاء بتردد 9000 هرتز (بمعامل جودة Q يساوي 20)، ثم تُخفّضها وتُخفّضها تدريجيًا كل ثانية على مدار نصف ثانية. في لغة Pd، يُقاس الزمن بالمللي ثانية، لذا فإن الرقم '1000' يُمثّل ثانية واحدة، والرقم '500' يُمثّل نصف ثانية.
انظر أيضاً
ملحوظات
- 1 2 "برمجيات من تصميم ميلر بوكيت" . ميلر بوكيت . تم الاطلاع عليه بتاريخ 14 يناير 2022 .
- ↑ بوكيت، م. (1988). برنامج الترقيع. في وقائع المؤتمر الدولي للموسيقى الحاسوبية.
- ↑ "الأسئلة الشائعة: ماكس 4 - ركوب الدراجات 74" . تم الاطلاع عليه بتاريخ 5 يناير 2017 .
- ↑ توثيق Pd الفصل 2 — 2.9. هياكل البيانات
- ↑ "الاحتمالات رقم 2: طبقة الصوت" . 2 مارس 2010. تم الاطلاع عليه في 5 يناير 2017 .
- ^ جوردا، سيرجي. كالتنبرونر، مارتن؛ جيجر، غونتر. بنسينا، روس (2005). "ICMC2005: ReacTable" (PDF) . مجموعة تكنولوجيا الموسيقى / IUA، جامعة بومبيو فابرا.
- ↑ كوساك، ديف (20 فبراير 2008). "جيم سباي: الإيقاع مستمر: الموسيقى الديناميكية في لعبة سبور" . جيم سباي . آي جي إن إنترتينمنت، إنك.
- ↑ "الموارد الشبكية للارتجال التعاوني (NRCI)" . مركز أبحاث الحاسوب في الموسيقى والصوتيات . قسم الموسيقى، جامعة ستانفورد.
مراجع
- دانكس، م. (1996). بيئة الرسومات لبرنامج ماكس. في: وقائع المؤتمر الدولي للموسيقى الحاسوبية، ص 67-70. الرابطة الدولية للموسيقى الحاسوبية.
- دانكس، م. (1997). معالجة الصور والفيديو في الوقت الحقيقي في برنامج جيم. في: وقائع المؤتمر الدولي للموسيقى الحاسوبية، الصفحات 220-223. الرابطة الدولية للموسيقى الحاسوبية.
- بوكيت، إم إس (1996) البيانات البحتة . وقائع المؤتمر الدولي للموسيقى الحاسوبية. سان فرانسيسكو: الرابطة الدولية للموسيقى الحاسوبية، ص 269-272.
- بوكيت، إم إس (1997). البيانات النقية. في: وقائع المؤتمر الدولي للموسيقى الحاسوبية، ص 224-227. الرابطة الدولية للموسيقى الحاسوبية.
للمزيد من القراءة
- بوكيت، ميلر سميث (2007). نظرية وتقنية الموسيقى الإلكترونية . وورلد ساينتيفيك ، سنغافورة. ISBN 978-981-270-541-9.
- كريدلر، يوهانس (2009). Loadbang: برمجة الموسيقى الإلكترونية في البيانات البحتة . وولك فيرلاغ، هوفهايم . رقم ISBN 978-3-936000-57-3.
- بي دي غراتس، أد. (2006). فرقعة البيانات النقية . وولك فيرلاغ، هوفهايم . رقم ISBN 978-3-936000-37-5.
- فارنيل، آندي جيه (2010). تصميم الصوت . مطبعة معهد ماساتشوستس للتكنولوجيا . ISBN 978-0-262-01441-0.
- برينكمان، بيتر (2012). صناعة تطبيقات موسيقية - توليف صوتي فوري على نظامي أندرويد وiOS . دار نشر أورايلي ميديا . رقم ISBN 978-1-4493-1490-3.
- باركل، مايكل (2012). التأليف: البيانات البحتة كأداة ما وراء التأليف . ISBN 978-3-8383-1647-5.
- باركل، مايكل (2018). البيانات النقية كأداة ما وراء التأليف: المجلد الأول من المؤلفات . ISBN 978-3-659-88634-8.
- باركل، مايكل (2018). البيانات البحتة كأداة ما وراء التأليف: المجلد الثاني من المؤلفات . ISBN 978-3-659-96899-0.
- ماتسومورا، سي (2012). كتاب الوصفات Pd - البيانات النقية (ではじめるサウンドプログラミング) . رقم ISBN 978-4-86100-780-4.
- حبيبدوست، منصور (2013). الطريقة الابتدائية Pd (بالفارسية) - PDF والتصحيحات (مبانی بنیادین نرم افزار پی دی نوشته منصور حبیب دوست) .
روابط خارجية
- لغات البرمجة الصوتية
- برامج الموسيقى الإلكترونية
- برامج صوتية مجانية
- برامج توليف الصوت
- لغات البرمجة المرئية
- البرامج التي تستخدم ترخيص BSD
- برنامج مجاني مكتوب بلغة C
- برنامج يستخدم Tk (برنامج)

