विषयसूची:

नृत्य दस्ताने: 9 कदम
नृत्य दस्ताने: 9 कदम

वीडियो: नृत्य दस्ताने: 9 कदम

वीडियो: नृत्य दस्ताने: 9 कदम
वीडियो: Gentlemen Dance Tuzelity 😎💥 Neon Mode 😱 2024, जुलाई
Anonim
नृत्य दस्ताने
नृत्य दस्ताने

इस ट्यूटोरियल में, मैं आपको एक ऐसा दस्ताने डिजाइन करने के बारे में बताऊंगा जो आपको नृत्य के माध्यम से संगीत के साथ बातचीत करने देता है। आप एक्सेलेरोमीटर-सक्षम दस्ताने का निर्माण करेंगे, एबलटन में एक रचना तैयार करेंगे, और फिर दोनों को जितना चाहें उतना जटिल या सरल तरीके से जोड़ेंगे!

आपूर्ति

  • एबलटन (या नि: शुल्क परीक्षण)
  • एक Arduino
  • जंपर केबल
  • सोल्डरिंग आयरन
  • गत्ता
  • गर्म गोंद वाली बंदूक
  • ढेर सारी कल्पनाएं

चरण 1: अवधारणा

यह प्रोजेक्ट मजेदार होने के लिए बनाया गया है। यदि इस ट्यूटोरियल में उदाहरण प्रोजेक्ट के काम करने का तरीका आपके लिए मज़ेदार नहीं है, तो इसे फिर से डिज़ाइन करें!

मेरा सुझाव है कि आप अपने कुछ पसंदीदा गीतों को डालें, उन पर अपना हाथ रखें और देखें कि क्या होता है। क्या आप अपने हाथ ऊपर-नीचे करते हैं? एक एक करके दांए व बांए? धीरे-धीरे या जल्दी? संगीत के किन पहलुओं के कारण आप अपने हाथ हिलाना चाहते हैं? यदि आपके पास इन लिखित की एक सूची है, तो संभवतः आप अपने अंतिम एल्गोरिदम में आनंद लेने वाली गतियों को शामिल करने के कुछ तरीकों का पता लगाने में सक्षम होंगे।

यहाँ वे गतियाँ हैं जिनका मैंने उपयोग किया:

  • एक त्वरित ऊपर और नीचे गति गीत, ड्रम या बास की शुरुआत को ट्रिगर करती है। (ये गीत में अलग-अलग बिंदुओं पर होते हैं, जरूरी नहीं कि एक साथ!)
  • एक धीमी, झुकी हुई अगल-बगल की गति अधिक प्रतिध्वनि, उच्च-ध्वनि को ट्रिगर करती है।
  • गीत के एक विशेष खंड में, मेरे हाथ को ऊपर की ओर झुकाने से संगीत शांत हो जाता है - इसलिए मैंने इसे अपनी बंद मुट्ठी में "पकड़ा" है।

इनका उपयोग करें या अपना खुद का बनाएं!

(कृपया ध्यान दें: इस ट्यूटोरियल में एबलेटन में लाइव संगीत या धुनों को उत्पन्न करने का तरीका शामिल नहीं है! यदि आप इन निर्देशों का पालन करते हैं, तो आप केवल ट्रैक्स की मात्रा या ऑडियो प्रभावों के अनुप्रयोग को बढ़ा/घटा सकते हैं।)

चरण 2: एक्सेलेरोमीटर तैयार करें

एक्सेलेरोमीटर तैयार करें
एक्सेलेरोमीटर तैयार करें

सबसे पहले, पता करें कि आपके पास किस प्रकार का एक्सेलेरोमीटर है। मैंने इसका इस्तेमाल किया; कोई भी तीन-अक्ष एक्सेलेरोमीटर करेगा। (या यदि आप जंगली जाना चाहते हैं तो किसी अन्य प्रकार के सेंसर का प्रयास करें।) सुनिश्चित करें कि आप Arduino से एक्सेलेरोमीटर डेटा को पढ़ना जानते हैं। आपको अपने एक्सेलेरोमीटर के लिए एक पुस्तकालय डाउनलोड करने की आवश्यकता हो सकती है यदि यह एनालॉग इनपुट से अधिक जटिल कुछ भी उपयोग करता है।

ब्रेडबोर्ड के साथ इसका परीक्षण करने के बाद, अपने एक्सेलेरोमीटर के पिन में छोटे रंग-कोडित तारों को मिलाएं। पावर पिन में एक लाल तार, ग्राउंड पिन में एक काला तार और एक्सेलेरोमीटर संचार के लिए कोई अन्य आवश्यक तार लगाएं। (यदि आपके पास I2C एक्सेलेरोमीटर है, तो यह SCL और SDA पिन होंगे। यदि आपके पास एक एनालॉग एक्सेलेरोमीटर है, तो x, y और z आउटपुट में से प्रत्येक के लिए एक पिन होने की संभावना है।) सुनिश्चित करें कि आपका मिलाप ठोस है और कि मोती आसन्न पिनों के बीच ओवरलैप न हों।

चरण 3: दस्ताने का निर्माण करें

दस्ताने का निर्माण
दस्ताने का निर्माण

पतले कार्डबोर्ड या मोटे कागज के एक टुकड़े को अपने एक्सेलेरोमीटर से थोड़े बड़े आयत में काटें। एक्सेलेरोमीटर को कार्डबोर्ड से गोंद दें, सुनिश्चित करें कि आप नीचे की तरफ गोंद लगा रहे हैं। फिर, कार्डबोर्ड-समर्थित एक्सेलेरोमीटर को अपने दस्ताने के पीछे चिपका दें। एक्सेलेरोमीटर पर तनाव को दूर करने के लिए प्रत्येक तार को दस्ताने की कलाई से ढीला करें, और फिर आपका दस्ताने तैयार है। प्लग इन होने पर अपने हाथ को स्थानांतरित करने के लिए पर्याप्त जगह रखने के लिए इसे लंबे तारों से कनेक्ट करें।

चरण 4: एबलेटन में लिखें

अब उस गीत की रचना करने का समय आ गया है जिसे आप अंततः नियंत्रित करने के लिए दस्ताने का उपयोग करेंगे। मैं एबलेटन लूप्स की अनुशंसा करता हूं जो सभी एक साथ अच्छे लगते हैं, लेकिन धीरे-धीरे निर्माण के लिए इस्तेमाल किया जा सकता है: मेलोडी, कॉर्ड, बास और पर्क्यूशन आज़माएं। आप अपने दस्ताने का उपयोग यह नियंत्रित करने के लिए कर पाएंगे कि प्रत्येक लूप कब चलता है या नहीं।

यदि आप किसी अजीब ध्वनि प्रभाव या अपरंपरागत वाद्ययंत्र की तरह कभी-कभी किसी गीत में शामिल करने के लिए किसी भी दिलचस्प प्रकार की आवाज़ के बारे में सोच सकते हैं, तो उनमें से एक या दो को भी जोड़ने का प्रयास करें! आप उन्हें हर बार एक बार में कुछ दिलचस्प लाने के लिए कम-सामान्य हाथ गतियों से जोड़ सकते हैं।

यहां मेरी Arduino-संगत रचना का लिंक दिया गया है, यदि आप अपना खुद का एक नहीं लिखना चाहते हैं:

(दुर्भाग्य से, आपको एबलेटन को पढ़ाना ट्यूटोरियल के दायरे में नहीं है। हालाँकि, वहाँ बहुत सारे अच्छे-से-कैसे वीडियो हैं, और एबलेटन का 90-दिन का निःशुल्क परीक्षण है! मैं इस वीडियो की अनुशंसा करता हूँ।)

चरण 5: फर्मेटा का उपयोग करना शुरू करें

फर्मेटा का उपयोग शुरू करें
फर्मेटा का उपयोग शुरू करें

अपने Arduino को एबलेटन के साथ संवाद करने में सक्षम बनाने के लिए, आपको फ़िरमेटा नामक एक पुस्तकालय का उपयोग करने की आवश्यकता होगी। आपको एबलटन के लिए कनेक्शन किट भी डाउनलोड करनी होगी।

एबलटन में, ऊपर बाईं ओर मेनू में पैक्स>कनेक्शन किट>डिवाइसेस पर क्लिक करें, और फिर इसे जोड़ने के लिए पहले डिवाइस (Arduino) पर डबल क्लिक करें। सुनिश्चित करें कि आपको याद है कि आपने किस एबलटन ट्रैक में डिवाइस जोड़ा है!

चरण 6: परीक्षण फर्मटा

परीक्षण फर्मटा
परीक्षण फर्मटा

सबसे पहले, हम परीक्षण करेंगे और सुनिश्चित करेंगे कि आपका Arduino Ableton के साथ संचार कर रहा है। इस कोड स्निपेट को अपने Arduino पर अपलोड करें और इसे चलाएं:

#include void analogWriteCallback(byte pin, int value){ if (IS_PIN_PWM(pin)) {pinMode(PIN_TO_DIGITAL(pin), OUTPUT); एनालॉगवर्इट (पिन_टीओ_पीडब्लूएम (पिन), मान); }}शून्य सेटअप() { Firmata.setFirmwareVersion(FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach(ANALOG_MESSAGE, analogWriteCallback); Firmata.begin(57600);}void लूप() { Firmata.sendAnalog(0, 800);}

फर्मटा के साथ संवाद करने के लिए यह न्यूनतम आवश्यक है। यह एबलेटन में फर्मेटा डिवाइस के पोर्ट 0 पर लगातार 800 (1024 में से) का आउटपुट भेजता है। यदि आप इस कोड को अपने Arduino पर अपलोड करते हैं, जबकि आपके पास एबलेटन में एक फर्मटा डिवाइस खुला है, तो यह ऊपर की छवि की तरह दिखना चाहिए। (मानों को देखने में सक्षम होने के लिए एबलेटन में किसी भी चीज़ के लिए मानचित्र पोर्ट 0।)

आप मैप बटन पर क्लिक कर सकते हैं और फिर एबलटन में किसी भी फर्मटा-संगत डिवाइस को उस पोर्ट पर प्राप्त इनपुट और उस एबलटन डिवाइस के मूल्य के बीच मैपिंग जोड़ने के लिए क्लिक कर सकते हैं। आसान उदाहरणों में किसी ऑडियो प्रभाव के भीतर किसी भी ट्रैक या किसी डायल की मात्रा शामिल है। एक्सप्लोर करें और देखें कि मैप करने के लिए आपको क्या मिल सकता है!

चरण 7: संगीत को अपने हाथों की गतिविधियों से प्रभावित करें

अपने हाथ की गतिविधियों से संगीत को प्रभावित करें!
अपने हाथ की गतिविधियों से संगीत को प्रभावित करें!

इस समय तक, आपके पास एबलेटन में कुछ संगीत होना चाहिए, आपके Arduino पर एक फर्मटा स्क्रिप्ट, और एक एक्सेलेरोमीटर दस्ताने संलग्न होना चाहिए। चलो कुछ संगीत बनाते हैं!

अलग-अलग चीजों के लिए एबलेटन में Arduino डिवाइस के मैप पोर्ट (मैं ट्रैक वॉल्यूम का सुझाव देता हूं), और फिर Arduino से प्रत्येक पोर्ट पर डेटा भेजने के लिए कोड की लाइनें जोड़ें।

Firmata.sendAnalog (पोर्ट, वॉल्यूम लेवल);

प्रत्येक फर्मटा पोर्ट के लिए इस तरह के कोड का प्रयोग करें।

यदि आप कुछ सरल करना चाहते हैं, तो आप एक्सेलेरोमीटर मानों को असंसाधित एबलटन बंदरगाहों पर भेज सकते हैं और उन्हें वहां से मैप कर सकते हैं। अधिक परिष्कृत अनुभव के लिए, आप यह तय कर सकते हैं: कौन से एक्सेलेरोमीटर मान ध्वनियों को ट्रिगर करना चाहिए, कैसे और कब?

फिर अपने सभी एबलटन लूप खेलें, अपना Arduino कोड चलाएं, और नृत्य करें!

(अस्वीकरण: यदि आप अपने गीत के लिए किसी भी प्रकार का जटिल एल्गोरिथम बनाने की योजना बना रहे हैं, तो इसे ठीक करने में बहुत समय लग सकता है। "डांस अवे" अनुमान से कम सटीक हो सकता है।)

चरण 8: ट्रैक क्लास (बोनस!)

यदि आपको वॉल्यूम पॉपिंग से ऐतराज नहीं है या इसे कम करने का कोई अन्य तरीका है, तो इस चरण को छोड़ दें। नहीं तो आगे पढ़िए!

मैंने देखा कि एक बार में वॉल्यूम को म्यूट से पूर्ण में स्विच करने से कुछ अप्रिय पॉपिंग ध्वनियां पैदा होती हैं, और वॉल्यूम में धीरे-धीरे फीका करने में सक्षम होना अच्छा है। हालाँकि, Arduino के सिंक्रोनस प्रोग्रामिंग वातावरण में ऐसा करना कठिन है। तो पॉपिंग को दूर करने के लिए यहां कुछ कोड दिया गया है:

क्लास ट्रैक {सार्वजनिक: इंट वॉल्यूम; इंट वॉल्यूम लक्ष्य; इंट अपडेट स्पीड; ट्रैक () {वॉल्यूम = 0; वॉल्यूम गोल = 0; अद्यतन गति = 0; } शून्य सेटवॉल्यूमगोल (इंट लक्ष्य) {वॉल्यूम गोल = लक्ष्य; } int getVolumeGoal () {वापसी वॉल्यूमगोल; } शून्य सेटअपडेटस्पीड (इंट फास्टनेस) {अपडेटस्पीड = फास्टनेस; } int getVolume () {वापसी की मात्रा; } शून्य अपडेट वॉल्यूम () { अगर ((वॉल्यूम> वॉल्यूम गोल) && ((वॉल्यूम - वॉल्यूम गोल)> = अपडेटस्पीड)) {वॉल्यूम - = अपडेटस्पीड; } और अगर ((वॉल्यूम = अपडेटस्पीड)) {वॉल्यूम + = अपडेटस्पीड; } } शून्य मूक (इंट फास्टनेस) {वॉल्यूम गोल = ५०; अद्यतन गति = स्थिरता; } पूर्ण शून्य (इंट फास्टनेस) {वॉल्यूम गोल = ९५०; अद्यतन गति = स्थिरता; }};

प्रत्येक ट्रैक में एक करंट वॉल्यूम, एक गोल वॉल्यूम और एक गति होती है जिस पर वह उस गोल वॉल्यूम की ओर बढ़ रहा होता है। जब आप किसी ट्रैक का वॉल्यूम बदलना चाहते हैं, तो setVolumeGoal() पर कॉल करें। हर बार जब आप अपने Arduino में लूप () फ़ंक्शन चलाते हैं, तो प्रत्येक ट्रैक पर अपडेटवॉल्यूम () को कॉल करें, और फिर उस जानकारी को फर्मटा को getVolume () के साथ भेजें। तेज़ या अधिक क्रमिक फ़ेडआउट के लिए अद्यतन गति बदलें! इसके अलावा, यदि आप कर सकते हैं तो वॉल्यूम को 0 पर सेट करने से बचें; इसके बजाय, इसे बहुत कम मान पर सेट करें (म्यूट() में डिफ़ॉल्ट 100 है)।

चरण 9: ट्रैक की लंबाई, बीट्स, और अधिक (बोनस!)

आप अपने प्रोजेक्ट से उत्पन्न ध्वनि को सुनने में आसान बनाने के लिए बहुत कुछ कर सकते हैं। यहां कुछ विकल्प दिए गए हैं:

आप ट्रैक कर सकते हैं कि गाना कितने समय से चल रहा है। ऐसा करने के लिए, आपको यह पता लगाना होगा कि गाना कब शुरू हुआ; मैं सेटअप () फ़ंक्शन में थोड़ी देर के लूप की अनुशंसा करता हूं जो आपके कोड को तब तक चलने से रोकता है जब तक कि उसे हाथ की गति महसूस न हो जाए। मिलिस () का उपयोग करके गीत के प्रारंभ समय को एक चर में संग्रहीत करें, और जांचें कि हर बार जब आप लूप() करते हैं तो यह कितना समय चल रहा है। आप इसका उपयोग गीत के निश्चित समय पर कुछ सुविधाओं को सक्षम या अक्षम करने के लिए कर सकते हैं।

यदि आप जानते हैं कि आपके लूप कितने समय तक मिलीसेकंड में हैं, तो आप यह भी ट्रैक कर सकते हैं कि गीत संरचना की अधिक सूक्ष्म समझ के लिए आप कितने लूप से गुजरे हैं!

एक और संभावित समस्या जिसका आप सामना कर सकते हैं, वह है कि किसी ट्रैक को कब शुरू करना है और कब खेलना बंद करना है। मैंने इसे ट्रैक करके इस बात का समाधान किया कि गीत वर्तमान में किस माप की बीट में था। फिर मैं इसे तुरंत काटने के बजाय, एक इशारे के बाद किसी भी संख्या में बीट्स के लिए ट्रैक चला सकता था। इससे चीजें बहुत अधिक सुचारू रूप से प्रवाहित होती हैं। यहाँ एक उदाहरण है:

अगर (मिलिस () - लास्टलूप> = 4000) {लूप + = 1; लास्टलूप = मिली (); के लिए (इंट जे = 0; जे <8; जे ++) {बीटनाउ [जे] = झूठा; } } बीट = (मिली () - लास्टलूप) / २५०; अगर (बीट! = लास्टबीट) { लास्टबीट = बीट; बीट्स लेफ्ट - = 1; }

सुनिश्चित करें कि आप बीटनाउ [बीट] और/या बीट्स लेफ्ट के मानों के अनुसार वॉल्यूम अपडेट करते हैं। यदि आप इसे अभ्यास में देखना चाहते हैं तो उदाहरण कोड इस ट्यूटोरियल में लगभग सभी चीजों को शामिल करता है, साथ ही कुछ, संलग्न है।

सिफारिश की: