جدول المحتويات:

قفاز الرقص: 9 خطوات
قفاز الرقص: 9 خطوات

فيديو: قفاز الرقص: 9 خطوات

فيديو: قفاز الرقص: 9 خطوات
فيديو: ПОПУЛЯРНЫЙ ТАНЕЦ Astronomia SHUFFLE TUTORIAL TUZELITY 2024, يوليو
Anonim
قفاز الرقص
قفاز الرقص

في هذا البرنامج التعليمي ، سوف أطلعك على تصميم قفاز يتيح لك التفاعل مع الموسيقى من خلال الرقص. ستقوم ببناء قفاز مزود بمقياس التسارع ، وتصميم تركيبة في Ableton ، ثم قم بتوصيل الاثنين بطريقة معقدة أو بسيطة كما تريد!

اللوازم

  • Ableton (أو نسخة تجريبية مجانية)
  • اردوينو
  • كابلات توصيل
  • لحام حديد
  • ورق مقوى
  • مسدس الغراء الساخن
  • الكثير من الخيال

الخطوة 1: المفهوم

تم تصميم هذا المشروع ليكون ممتعًا. إذا كانت الطريقة التي يعمل بها مثال المشروع في هذا البرنامج التعليمي ليست ممتعة بالنسبة لك ، فأعد تصميمه!

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

فيما يلي الحركات التي استخدمتها:

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

استخدم هذه أو اصنع بنفسك!

(يرجى ملاحظة: هذا البرنامج التعليمي لا يغطي كيفية إنشاء الموسيقى أو الألحان الحية في Ableton! إذا التزمت بهذه التعليمات ، فستتمكن فقط من زيادة / تقليل حجم المسارات أو تطبيق المؤثرات الصوتية.)

الخطوة 2: تحضير مقياس التسارع

تحضير مقياس التسارع
تحضير مقياس التسارع

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

بعد اختباره باستخدام لوح التجارب ، قم بلحام الأسلاك القصيرة ذات الترميز اللوني في دبابيس مقياس التسارع. ضع سلكًا أحمر في دبوس الطاقة وسلكًا أسود في الدبوس الأرضي وأي أسلاك أخرى ضرورية لاتصال مقياس التسارع. (إذا كان لديك مقياس تسارع I2C ، فسيكون هذا هو دبابيس SCL و SDA. إذا كان لديك مقياس تسارع تناظري ، فمن المحتمل أن يكون هناك دبوس واحد لكل من مخرجات x و y و z.) تأكد من أن اللحام صلب و أن الخرزات لا تتداخل بين المسامير المجاورة.

الخطوة الثالثة: بناء القفاز

اصنع القفاز
اصنع القفاز

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

الخطوة 4: التأليف في Ableton

حان الوقت الآن لتأليف الأغنية التي ستستخدم القفاز في النهاية للتحكم فيها. أوصي بحلقات Ableton التي تبدو جميعها جيدة معًا ، ولكن يمكن استخدامها للتراكم تدريجيًا: جرب اللحن ، والأوتار ، والباس ، والإيقاع. ستتمكن من استخدام قفازك للتحكم في تشغيل كل حلقة أو عدم تشغيلها.

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

إليك رابط لتكوين متوافق مع Arduino ، في حالة عدم رغبتك في كتابة واحد خاص بك:

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

الخطوة 5: ابدأ باستخدام Firmata

ابدأ باستخدام Firmata
ابدأ باستخدام Firmata

من أجل تمكين Arduino الخاص بك من التواصل مع Ableton ، ستحتاج إلى استخدام مكتبة تسمى Firmata. ستحتاج أيضًا إلى تنزيل Connection Kit لـ Ableton.

في Ableton ، انقر فوق Packs> Connection Kit> Devices في القائمة أعلى اليسار ، ثم انقر نقرًا مزدوجًا فوق الجهاز الأول (Arduino) لإضافته. تأكد من تذكر مسار Ableton الذي أضفت الجهاز إليه!

الخطوة 6: اختبار Firmata

اختبار Firmata
اختبار Firmata

أولاً ، سنختبر ونتأكد من أن Arduino الخاص بك يتواصل مع Ableton. قم بتحميل مقتطف الشفرة هذا إلى Arduino الخاص بك وقم بتشغيله:

#include void analogWriteCallback (بايت رقم التعريف الشخصي ، قيمة int) {if (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin) ، OUTPUT) ؛ analogWrite (PIN_TO_PWM (دبوس) ، القيمة) ؛ }} إعداد باطل () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION، FIRMATA_FIRMWARE_MINOR_VERSION) ؛ Firmata.attach (ANALOG_MESSAGE، analogWriteCallback) ؛ Firmata.begin (57600)؛} حلقة باطلة () {Firmata.sendAnalog (0، 800)؛}

هذا هو الحد الأدنى المطلوب للتواصل مع Firmata. يرسل باستمرار إخراج 800 (من أصل 1024) إلى المنفذ 0 لجهاز Firmata في Ableton. إذا قمت بتحميل هذا الرمز إلى Arduino الخاص بك أثناء وجود جهاز Firmata مفتوح في Ableton ، فيجب أن يبدو مثل الصورة أعلاه. (عيّن المنفذ 0 لأي شيء في Ableton لتتمكن من رؤية القيم.)

يمكنك النقر فوق الزر Map ثم أي جهاز متوافق مع Firmata في Ableton لإضافة تعيين بين المدخلات المستلمة إلى هذا المنفذ وقيمة جهاز Ableton هذا. تتضمن الأمثلة السهلة حجم أي مسار أو أي قرص داخل تأثير صوتي. استكشف وشاهد ما يمكنك أن تجده لتعيينه!

الخطوة 7: التأثير على الموسيقى بحركات يدك

التأثير على الموسيقى بحركات يدك!
التأثير على الموسيقى بحركات يدك!

بحلول هذا الوقت ، يجب أن يكون لديك بعض الموسيقى في Ableton ، ونص Firmata على Arduino الخاص بك ، وقفاز التسارع المرفق. لنصنع بعض الموسيقى!

قم بتعيين منافذ جهاز Arduino في Ableton إلى أشياء مختلفة (أقترح تتبع الحجم) ، ثم أضف أسطرًا من التعليمات البرمجية لإرسال البيانات إلى كل منفذ من Arduino.

Firmata.sendAnalog (المنفذ ، VolumeLevel) ؛

استخدم رمزًا مثل هذا لكل منفذ Firmata.

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

ثم قم بتشغيل كل حلقات Ableton الخاصة بك ، وقم بتشغيل كود Arduino الخاص بك ، والرقص بعيدًا!

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

الخطوة 8: فئة المسار (مكافأة!)

إذا كنت لا تمانع في ظهور الحجم أو لديك طريقة أخرى لتخفيفه ، فتخط هذه الخطوة. خلاف ذلك ، واصل القراءة!

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

مسار الفصل {public: int volume؛ كثافة العمليات الهدف؛ int updateSpeed ؛ المسار () {الحجم = 0 ؛ حجم الهدف = 0 ؛ updateSpeed = 0 ؛ } void setVolumeGoal (int target) {volumeGoal = target؛ } int getVolumeGoal () {return volumeGoal؛ } void setUpdateSpeed (int fastness) {updateSpeed = fastness؛ } int getVolume () {حجم الإرجاع؛ } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed؛ } else if ((volume = updateSpeed)) {volume + = updateSpeed؛ }} كتم الفراغ (ثبات int) {volumeGoal = 50 ؛ updateSpeed = ثبات ؛ } باطل ممتلئ (ثبات int) {volumeGoal = 950 ؛ updateSpeed = ثبات ؛ }}؛

يحتوي كل مسار على حجم حالي وحجم هدف وسرعة يتحرك بها نحو حجم الهدف هذا. عندما تريد تغيير مستوى صوت مسار ، اتصل بـ setVolumeGoal (). في كل مرة تقوم فيها بتشغيل وظيفة loop () في Arduino ، اتصل بـ updateVolume () في كل مسار ، ثم أرسل هذه المعلومات إلى Firmata باستخدام getVolume (). قم بتغيير سرعة التحديث للحصول على اختفاء تدريجي أسرع أو أكثر! أيضًا ، تجنب ضبط مستوى الصوت على 0 إذا استطعت ؛ بدلاً من ذلك ، اضبطه على قيمة منخفضة جدًا (الافتراضي في كتم الصوت () هو 100).

الخطوة 9: طول المسار والإيقاعات والمزيد (مكافأة!)

يمكنك القيام بالكثير من الأشياء لتسهيل الاستماع إلى الصوت الناتج عن مشروعك. وهنا عدد قليل من الخيارات:

يمكنك تتبع مدة تشغيل الأغنية. للقيام بذلك ، عليك معرفة متى بدأت الأغنية ؛ أوصي باستخدام حلقة while في وظيفة setup () التي تؤخر تشغيل الكود الخاص بك حتى يستشعر حركة يد. قم بتخزين وقت بدء الأغنية في متغير باستخدام millis () ، وتحقق من المدة التي استغرقتها الأغنية في كل مرة تقوم فيها بالتكرار (). يمكنك استخدام هذا لتمكين أو تعطيل ميزات معينة في أوقات معينة من الأغنية.

إذا كنت تعرف مدة الحلقات بالمللي ثانية ، فيمكنك أيضًا تتبع عدد الحلقات التي مررت بها لفهم أكثر دقة لهيكل الأغنية!

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

إذا (مللي () - lastLoop> = 4000) {حلقات + = 1 ؛ lastLoop = ميلي () ؛ لـ (int j = 0؛ j <8؛ j ++) {beatNow [j] = false ؛ }} beat = (millis () - lastLoop) / 250 ؛ إذا (beat! = lastBeat) {lastBeat = beat؛ يدق اليسار - = 1 ؛ }

تأكد من تحديث الأحجام وفقًا لقيم beatNow و / أو beatsLeft. يتم إرفاق رمز المثال الذي يشتمل على كل شيء تقريبًا في هذا البرنامج التعليمي ، بالإضافة إلى البعض ، في حالة رغبتك في رؤيته عمليًا.

موصى به: