ارسم الموسيقى: رقص التابوت في Pure Data

برمجة وميمات


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

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

في عام 2020 ، أصبحت الرقص من الفيديو المؤرشف لحفل الجنازة لوكالة Dada awu من غانا الميم الأكثر شعبية في روسيا. اليوم علينا أن نعيد خطوة بخطوة إعادة إنشاء الموضوع الموسيقي الأسطوري Coffin Dance ، باستخدام بيئة الوصف الصوتي الخوارزمي Pure Data.

حول البرمجة المرئية


من خلال البرمجة المرئية ، من المعتاد فهم عملية وصف برنامج لجهاز حوسبي باستخدام عناصر رسومية وظيفية. لذلك ، يمكن أن يسمى استخدام مصمم نموذج WPF في بيئة تطوير Visual Studio البرمجة المرئية للواجهة. ظهر مصممو الجرافيك مع أول أجهزة الكمبيوتر الشخصية. الآن في دروس في علوم الكمبيوتر ، تتم دراسة Visual Pascal في بعض المدارس. ويمكن إجراء نصف التحسينات القياسية في 1C دون كتابة سطر من التعليمات البرمجية.

لكن بيئات البرمجة المرئية الكاملة ظهرت لاحقًا. عندما يتعلق الأمر بإنشاء لغة برمجة تتكون فقط من الأوامر الرسومية ، فقد ظهر عدد من الصعوبات ، والتي بسببها يجب تقليص وظائف اللغة نفسها.
لذلك ، تعد المكالمات المتعددة لنفس البرنامج الفرعي في أجزاء مختلفة من كود C ++ طبيعية للمبرمج. في بيئة رسومية ، يمكن تمثيل مكالمة روتينية ، على سبيل المثال ، بسهم من كائن في نص البرنامج الرئيسي إلى روتين كائن ، وعندما يكون هناك عدد كبير جدًا من هذه الأسهم ، يصبح رمز الرسم غير قابل للقراءة. غالبًا ما يفرض مطورو بيئات التطوير التعليمي أنفسهم حدًا (على عدد المكالمات والأشياء في البرنامج والمتغيرات المستخدمة) لحماية المستخدم وجعل عملية البرمجة المرئية أكثر وضوحًا.
مثال على برنامج Sanscript بسيط:

صورة

ولكن إذا كنت تشتت الانتباه عن البرمجة بالمعنى الواسع ، يمكنك العثور على المشكلات التطبيقية المهمة التي يتم حلها بشكل رسومي بشكل أكثر ملاءمة وأكثر كفاءة من الرمزية. إحدى هذه المهام: وصف للأدوات الافتراضية. مرة أخرى في 80s من القرن الماضي ، تم إجراء معظم التسجيلات الموسيقية الحية. كانت المزج الرقمي أقل جودة في الأجهزة الصوتية ، وكانت الأنظمة الرقمية "الموسيقية" باهظة الثمن.

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

في تلك السنوات نفسها ، في محاولة لترويج التوليف الصوتي بين الهواة ، ظهر مشروع البيانات النقية التجريبي - بيئة تطوير بصرية تركز على وصف المزج البسيط. حول Pure Data ، مجموعة صغيرة من "المعجبين" تشكلت للترويج للبرمجة المرئية في FB ، Youtube: لقد كتبوا وترجموا مواد التدريب ، وأمثلة المزج المنشورة ومزيج الموسيقى الكاملة على رقعة واحدة (هذا هو اسم برنامج Pure Data عن طريق القياس مع التصحيحات في وحدات تركيب الأجهزة المعيارية ) لكن البيئة لم تحصل على توزيع واسع في العالم.

أساسيات البيانات البحتة


يمكن تنزيل بيئة تطوير البيانات النقية مجانًا من الموقع الرسمي. يقوم البرنامج بتوزيع المصدر المفتوح وهو متاح لمستخدمي أنظمة Windows و Linux و MacOS X. قم بتثبيت وتشغيل Pure Data. في قائمة ملف ، قم بإنشاء تصحيح جديد. ستظهر نافذة التحرير التالية:

صورة

تحتوي قائمة Put على قائمة بالكائنات الرسومية التي سنقوم من خلالها بعمل أول مركب. بعد تحديد العنصر المناسب ، تتم إضافة العنصر إلى الحقل الرسومي (Canvas) الخاص بالتصحيح الحالي. يمكن تحرير العناصر (تغيير التوقيع ، مما يؤثر على سلوكهم ، وكذلك نقله) وتوصيله بخطوط (عن طريق الضغط على زر الماوس الأيسر على أحد مخرجات الكائن المصدر ، وتحريك المؤشر إلى إدخال كائن الوجهة وتحريره). على سبيل المثال ، سنقوم بإنشاء عنصر واحد من النوع "كائن" بمفتاح الاسم وعنصر واحد من النوع "رقم". يتم تمييز مدخلات العنصر باللون الأسود وتقع فوق إطار العنصر نفسه ، والنواتج تحته. قم بتوصيل إخراج الكائن الرئيسي بإدخال عنصر الرقم.
نحن نحصل:

صورة

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

صورة

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

ارجع إلى وضع التحرير وأضف كائنًا آخر باسم sel 49. وسيحتوي على مدخلين ومخرجين. يرسل هذا الكائن إشارة إلى الإخراج الأول في كل مرة تصل فيها قيمة إلى أحد المدخلات وتتطابق مع القيمة المخزنة على الإدخال الآخر. إذا تلقى الإدخال قيمة غير المتراكمة ، يتم إرسال الإشارة إلى الإخراج الثاني. الجزء الأول من اسم sel يحدد نوع الكائن ، والثاني 49 - يكتب القيمة الافتراضية للإدخال الثاني. 49 هو رمز المفتاح "1".

الإشارة هي نوع بيانات خاص لا يمكن إخراجها ببساطة ، على سبيل المثال ، عن طريق إرسال Number إلى الإدخال. ولكن بمساعدة الإشارات ، يمكنك "بدء" عمل بعض العناصر.

ارجع إلى قائمة Put وأضف عنصر Bang إلى التصحيح لدينا. قم بتوصيل إخراج الرقم بإدخال sel 49 الأول وإخراج sel 49 الأول لإدخال Bang. سوف نتلقى التصحيح التالي:

صورة

سننتقل إلى وضع التنفيذ. بالضغط على مفاتيح مختلفة ستظهر رموزها. عندما تضغط على "مفتاح خاص" برمز 49 ، سينشئ كائن sel صوتًا فرديًا ، عند الضغط على زر الانفجار ، يضغط عليه تلقائيًا:

صورة

يولد كائن الانفجار إشارة عند خرجه الوحيد عند الضغط عليه في وضع التشغيل ، تصل الإشارة أو القيمة إلى الإدخال. أضف القليل من الصوت لمشروعنا. لكي يعمل التصحيح بشكل صحيح مع البيانات الصوتية ، يجب أن تحتوي قائمة الوسائط على علامة اختيار مقابل عنصر DSP On. ستحتاج أيضًا إلى دخول قائمة إعدادات Midi وتثبيت جهاز الإخراج. على نظام Windows:

صورة

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

صورة

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

كائن الملاحظات ، عندما يتلقى القيمة عند الإدخال الأول ، يولد الصوت على إحدى قنوات MIDI. يمكن الإشارة إلى رقم القناة بوضوح باسم الكائن (في حالتنا 1 - بيانو) أو نقله إلى ملاحظة الإدخال الثالثة. الإدخال الأول يأخذ الملعب من حيث midi: (60 - هذا إلى أول ثماني ثم +1 - زيادة بمقدار نصف نغمة ، -1 - انخفاض بمقدار نصف نغمة) ، والثاني - وصف ملاحظة: الحجم ، المدة ، طبيعة إنتاج الصوت.
يستقبل كائن makenote الملعب إلى الإدخال الأول وإلى المجلد الثاني (0 - الصمت ، 127 - الحد الأقصى لحجم الصوت) يترجم الملعب إلى الإخراج الأول ، وينشئ وصفًا لملاحظة الإدخال الثاني على الإخراج الثاني. يتم تحديد القيم الافتراضية لمدخلات makenote الأولى والثانية مباشرة بعد اسم الكائن. قم بتوصيل العناصر كما هو موضح في الشكل وانتقل إلى وضع التشغيل:

صورة

عندما تنقر على رسالة ، يجب أن تكون الملاحظة مطابقة للنبرة في اسم الرسالة. 60 - مذكرة إلى 62 - إعادة ، 67 - لا. الآن في وضع التحرير ، قم بتوصيل المخرج الأول للمحدد (كائن sel) بالرسالة 60. أضف محددين آخرين برموز للمفاتيح 2 و 3 على لوحة المفاتيح واحصل على أبسط المزج:

صورة

سيؤدي الضغط على المفاتيح 1-3 في makenote إلى إرسال رسالة تحتوي على درجة الصوت المناسبة وستظهر ملاحظة. في القسم التالي ، سنحاول وصف اللحن المعقد الذي سيتم تشغيله بشكل متسلسل ملاحظة بملاحظة عند إرسال إشارة واحدة فقط.

إعادة إنشاء رقص التابوت


موسيقى


لوصف اللحن المعقد ، نحتاج إلى دراسة شيئين مهمين - المترو و f ، بالإضافة إلى عدد من الأشياء المساعدة. فكر في مثال بسيط:

صورة

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

تذكر الموسيقى من Coffin Dance:


يمكن وصف اللحن الرئيسي بتسلسل من 64 نوتة وتوقف مؤقت للمدة الثامنة ، أي عند 8 مقاييس في 4/4. لذا ، نحتاج إلى تنظيم الإرسال الدوري للإشارات رقم 64 إلى رسائل المذكرة المقابلة. للقيام بذلك ، استخدم الكائن f.

F - من تعويم - يمثل متغيرًا حقيقيًا. يحتوي الكائن f على مدخلين. في الإدخال الثاني ، يمكنك إرسال قيمة عددية (على سبيل المثال ، من إخراج الرسالة أو ناتج الرقم) ، والتي تتم كتابتها كقيمة المتغير. القيمة الافتراضية هي 0. مع الإدخال والخروج الأول ، تصبح الأمور أكثر تعقيدًا. فكر في مثال:

صورة

لذلك ، وجدنا علاقة سحرية بين الميمات "اضغط F لإبداء الاحترام" و "رقص التابوت". دعنا ننتقل إلى وضع التشغيل. عندما تنقر على الرسالة 3 ، ستتم كتابة القيمة إلى متغير الكائن f ، ولكن في العدد لن نرى ذلك. إذا قمت بإرسال الإشارة إلى الإدخال الأول f باستخدام زر الانفجار ، فإن ما يحدث فيما يتعلق ببيانات نقية هو تكرار ، أي:

  • الناتج f سيرسل القيمة الحالية للمتغير (3)
  • سيتلقى الكائن + 5 الرقم 3 في الإدخال الأول وسيعيد مجموع الإدخالين 8 (هنا يتم تعيين القيمة في الإدخال الثاني افتراضيًا بعد الاسم + كائن الإضافة)
  • سيتلقى الكائن٪ 40 الرقم 8 في الإدخال الأول ويعيد ما تبقى من قسمة 8 على 40 (يتم تعيين قيمة الإدخال الثاني بشكل افتراضي)
  • سيحصل المتغير f على القيمة (3 + 5)٪ 40 = 8 عند الإدخال الثاني

وهكذا ، بعد التكرار الأول ، نرى القيمة 3 عند رقم الإدخال ولدينا قيمة حقيقية 8 للمتغير f. في التكرار التالي ، سيحصل الرقم على الثمانية المحفوظة مسبقًا ، وسيزداد f بمقدار 5 أخرى ويأخذ القيمة 13. عندما يتعلق الأمر بالتكرار مع الإخراج 38 ، نحصل على القيمة (38 + 5)٪ 40 = 3 للمتغير f. وبالتالي ، سيتم تكرار قيم f وقيم المخرجات بشكل دوري. يسمح لك استخدام طريقة الجمع والقسمة بالحصول على دورة مع أي فترة وأي قيم للتكرارات.

قم بتوصيل إخراج المسرع بالإدخال الأول f ، واضبط العديد من المحددات والأزرار عند الإخراج f. قم بتشغيل المسرع وانظر كيف تضيء الأزرار بدورها وبعد الضغط التلقائي على الزر الأخير ، تتكرر الدورة. رقعة قماشية:

صورة

لكي يتم تشغيل الحلقة في كل مرة من القيمة 3 ، قمت بتوصيل إخراج رسالة الإيقاف بإدخال الرسالة 3 وإرسال القيمة الأولية إلى f.

دعونا نصف اللحن. للقيام بذلك ، قم بإنشاء رقعة نظيفة ووصف المسرع بفاصل 230 (بالضبط 230 مللي ثانية تدوم نوتة واحدة في اللحن) ودورة من 64 نوتة. لتحديد القيم ، نستخدم المتغير f و موسى العنصر الجديد بالنسبة لنا ، والذي سيتم وصف وظيفته أدناه. نضيف أيضًا العديد من كائنات makenote والرسائل مع الملاحظات والملاحظات مع القنوات 1 (البيانو) و 10 (الطبول) ، ودمج محددات كل تكرارات مع الملاحظات المقابلة. احصل على الباتش:

صورة

كما ترى ، باستخدام البرمجة المرئية ، يقلل استخدام عدد كبير من الكائنات من سهولة قراءة البرنامج. في الواقع ، التصحيح هو مزيج من العناصر البسيطة. ضع في اعتبارك "الروتين" التالي:

صورة

يقوم كائن موسى بتخزين رقم على الإدخال الثاني ، والذي يمكن تعيينه افتراضيًا. إذا تلقى الإدخال الأول رقمًا أصغر من القيمة المخزنة للمدخل الثاني ، فسيتم إرسال إشارة من الإخراج الأول من موسى ، وإلا يتم إرسال الإشارة من الإخراج الثاني. وبالتالي ، فإن الإخراج الأول من موسى 1 يتصرف بشكل مشابه للإخراج الأول من sel 0. فلنلق نظرة على مجموعة من + 63٪ 64. إنه يسمح لك بتقليل القيم في الحلقة بمقدار واحد. إذا تم إدخال أحد ، فسيكون الناتج 0 ، للإدخال 0 سيكون الناتج 63 - سنحصل على دورة من 64 عنصرًا في الترتيب العكسي. إذا قمنا بتوصيل إخراج هذه الحزمة بإدخال البناء التالي + 63٪ 64 وقمنا بتوصيل موسى 1 بإخراج كل حزمة ، ولكن لكل واحدة من القيم المحتملة الـ 64 لـ f ، سترسل موسى واحدة إشارة إلى الإخراج الأول بالضبط. لذا ، يجب تقليل الرقم 7 7 مرات بمقدار 1 ،للحصول على 0 ، عندئذٍ ستتلقى الفئران السابعة 1 عند التكرار 7 قيمة 0 عند الإدخال الأول وترسل إشارة إلى الملاحظة المقابلة. إذا كنت بحاجة إلى 64 محددًا تحتاج إلى تحرير القيم الافتراضية للمعلمات يدويًا ، فيمكن عندئذ نسخ الإجراءات + 63٪ 64 موسى 1 وتوصيل مخرجات٪ 64 السابقة بالإدخالات + 63 للحصول على محدد دوري معقد يحتوي على 64 موضعًا.

يستخدم تصحيح اللحن الازدواجية من كائنات الملاحظات. تسمح لك هذه التقنية بزيادة مستوى الصوت بتجاوز علامة الحد. لذلك ، إذا قمت بتوصيل نفس makenote 67 127 إلى 2 noteout 1 ، ولكن عند إرسال إشارة من إدخال makenote الأول ، سيتم تشغيل الملاحظة la (الرمز 67 ، أوكتاف الأول) بحجم 127 * 2 = 254. أدوات MIDI في Pure Data هادئ للغاية ، لذلك هذه التقنية مفيدة في إنشاء ألحان الفرقة (في حالتنا ، يتم تشغيل 2 بيانو على القنوات 1 و 5 وطبل 10 مع حجم ثلاثي).

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

حيوية


بالنسبة للرسوم المتحركة ، نحتاج إلى جميع المتغيرات نفسها ، والكائنات - العمليات الحسابية والمسرع ، بالإضافة إلى المحددات. هذه المرة نحتاج فقط 8 إطارات ، لذلك سنستخدم كائنات سيل. قم بإنشاء حقل 20x10 من أزرار الانفجار (سنستخدم عملية النسخ). بعد وضع التصحيح باللحن في المنتصف ، نحصل على الشكل التالي:

صورة

يمكنك ببساطة توصيل المخرجات اليسرى لكل محدد بالأزرار التي يجب الضغط عليها في هذا الإطار وإرسال إشارة من المسرع إلى إدخال متغير جديد للدورة f. لكن هذا النهج له عيبان:

  • 0.23 ثانية لكل إطار - سريع جدًا لرقصنا. وسيؤدي استخدام المسرع الثاني إلى إزاحتنا عن الإيقاع: فالنوتة الموسيقية والانفجار لهما تأخير مختلف استجابة للإشارة ؛
  • يظل الزر مضغوطًا لمدة 0.05 ثانية من لحظة تلقي الإشارة ، مما يعني أنه خلال الثواني 0.18 المتبقية ستكون "شاشة" الرسوم المتحركة فارغة وستومض الصورة في الحلقة.

لحل هذه المشاكل ، نستخدم القسمة. البناء التالي:

صورة

يأخذ القيمة f لإدخال اللحن الرئيسي للدورة. بعد القسمة على 2 ، نحصل على تباطؤ في تغيير الإطار: بالنسبة إلى 0 و 1 ، سيتم عرض الإطار 1 ، بالنسبة إلى 2 و 3 ، والإطار 2 وما إلى ذلك. لكل إطار ، لا يزال يتم إرسال إشارة واحدة كل 0.23 ثانية. الآن دعنا نستخدم حلقة أخرى:

صورة

للمزامنة مع اللحن الرئيسي ، تمت إضافة تأخير إليه: تمر إشارة التضمين من المحدد أولاً من خلال الزر وبعد ذلك فقط إلى الإدخال الأول من المسرع. الآن ، إذا قمت بإنشاء ضجة وربط خرجها بجميع أزرار البكسل لإطار معين ، فإن الإطار أعلاه يمكنك تمييز الإطار كل 0.046 ثانية ، وهو أسرع من تكرار تحديث الأزرار ، أي سيضيء الإطار باستمرار حتى يتغير الإطار التالي. تضمن دورة من 5 تكرارات أنه لن يتم وضع الإطارات في طبقات ، لأن 0.046 * 5 = 0.23 ثانية - فترة محددات الإطار.

عند إنشاء الرسوم المتحركة ، تعطل الكمبيوتر بانتظام ، ولكن كان من الممكن رسم 5 صور مختلفة وإنشاء دورة من 8 إطارات منها بالترتيب:

1 2 3 2 1 4 5 2

التصحيح النهائي مع Coffin Dance (العديد من العناصر الزخرفية - إضافة الأزرار والتعليقات) في وضع التحرير: من

صورة

الصعب تحليل شفرة المصدر للمحاكاة في هذه الصورة الجهنمية ، ولكن التصحيح يعمل بشكل صحيح:

صورة

في الزاوية اليمنى السفلية ، يتم استخدام عداد لإيقاف اللاعب تلقائيًا بعد 121 ملاحظات. في البداية ، كان من المفترض أن تكون الرسوم المتحركة 48 × 24 بكسل ، ولكن الكمبيوتر رفضها بشكل قاطع مع هدير حزين للمبرد وإعادة تشغيل غير متوقعة لنظام التشغيل Windows في الوضع الآمن. الفن بكسل الأصلي 48x24 من الفنان LikaLou مرفق في نهاية الفيديو. لذا ، بعد 3 أيام من "رسم الموسيقى" ، لدينا رقصة التابوت في البيانات النقية:


استنتاج


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

باستخدام تصحيح المثال لـ Coffin Dance ، يمكنك الحكم على مستوى تطور البرمجة المرئية. هناك لغات رسومية تتوافق جيدًا مع بعض مهام التطبيق ، إذا كانت بيئات التطوير مناسبة. لكن صناعة البرمجة المرئية ككل ما زالت في مهدها.

المراجع


الموقع الرسمي لـ Pure Data
أساسيات البرمجة المرئية في Pure Data
حول
مقالة VST القياسية Coffin Dance على Wikipedia
Coffin Dance in Pure Data: الفيديو الأصلي

All Articles