विषयसूची:

Arduino मल्टी-ट्रैक MIDI लूप स्टेशन: 6 कदम
Arduino मल्टी-ट्रैक MIDI लूप स्टेशन: 6 कदम

वीडियो: Arduino मल्टी-ट्रैक MIDI लूप स्टेशन: 6 कदम

वीडियो: Arduino मल्टी-ट्रैक MIDI लूप स्टेशन: 6 कदम
वीडियो: Arduino के लिए 2 # MIDI प्रोग्रामिंग-MIDIUSB लाइब्रे... 2024, जुलाई
Anonim
Arduino मल्टी-ट्रैक MIDI लूप स्टेशन
Arduino मल्टी-ट्रैक MIDI लूप स्टेशन
Arduino मल्टी-ट्रैक MIDI लूप स्टेशन
Arduino मल्टी-ट्रैक MIDI लूप स्टेशन
Arduino मल्टी-ट्रैक MIDI लूप स्टेशन
Arduino मल्टी-ट्रैक MIDI लूप स्टेशन

एक लूप स्टेशन, या एक लूपर, अनिवार्य रूप से आपके इंस्ट्रुमेंटल रिफ़्स (लूप्स) को रीयल-टाइम में प्लेबैक करने के लिए एक उपकरण है। यह एक रिकॉर्डिंग मीडिया के रूप में अभिप्रेत नहीं है, बल्कि बिना किसी व्याकुलता के प्रेरणा को आकार देने के लिए एक उपकरण है (और अंततः लाइव प्रदर्शन करता है …)।

वहाँ बहुत सारे ऑडियो रिकॉर्डिंग लूप स्टेशन हैं, दोनों समर्पित हार्डवेयर के रूप में (लगभग हर एक गिटार पेडल निर्माता का अपना उत्पाद है) या कंप्यूटर सॉफ्टवेयर (सबसे प्रसिद्ध का हवाला देने के लिए उत्कृष्ट लिनक्स सोपर लूपर या विंडोज़ मोबियस)। मुझे केवल DIY गैर-ऑडियो लेकिन MIDI लूपर्स के बारे में कुछ प्रोजेक्ट मिले, जिसका अर्थ है MIDI घटनाओं को रिकॉर्ड करने और उन्हें तुरंत एक लूप में चलाने के लिए एक उपकरण; इनमें से अधिकतर परियोजनाएं (उनमें से सभी, मुझे कहना चाहिए) छोड़ दी गई हैं या खो गई हैं … ठीक है, यहां हम सभी के लिए एक पूर्ण परियोजना के साथ हैं!

यह Arduino MIDI लूप स्टेशन आने वाली MIDI घटनाओं का ट्रैक रखता है और उन्हें वापस चलाता है। आपको केवल रिकॉर्ड पेडल को दबाना है, अपना सर्वश्रेष्ठ रिफ़ बनाना है और पेडल को फिर से दबाकर रिकॉर्डिंग बंद करना है। सुपर आसान:)

यह प्रोजेक्ट आसान खोजने के लिए खुले हार्डवेयर (Arduino DUE), सॉफ़्टवेयर (मेरा अपना फ़र्मवेयर और Arduino IDE) पर आधारित है और इसे आपकी प्राथमिकताओं को दर्शाने के लिए अनुकूलित किया जा सकता है।

हो जाए!

पीएस: हाँ, यह बहुत सस्ता है!

चरण 1: सीमाएं

इससे पहले कि आप परियोजना के लिए हार्डवेयर भागों का अधिग्रहण शुरू करें, मैं आपको बता दूं कि इसकी कौन सी सीमाएं हैं ताकि आप आगे बढ़ने या यहां रुकने का फैसला कर सकें।

- हार्डवेयर सीमा (अनिवार्य रूप से Aduino DUE मेमोरी) के कारण, आपके द्वारा रिकॉर्ड किए जा सकने वाले वाक्यांश की डिफ़ॉल्ट अधिकतम लंबाई 46 सेकंड तक सीमित है।

- लूप्स को स्टोर नहीं किया जा सकता और शट डाउन के बाद वापस चलाया नहीं जा सकता। आप उन्हें एक पीसी पर भेज सकते हैं और उन्हें सहेज सकते हैं, हालांकि।

- कोई नोट परिमाणीकरण नहीं है।

- मिडी घड़ी समर्थित है, लेकिन इस समय प्रारंभिक चरण में है।

- रिकॉर्ड किए गए मिडी संदेश नोट ऑन, नोट ऑफ, नियंत्रण परिवर्तन और पिच मोड़ हैं; अन्य MIDI संदेश जैसे स्पर्श के बाद, प्रोग्राम परिवर्तन, SysEx, आदि की अवहेलना की जाती है।

- अधिकतम पॉलीफोनी डिफ़ॉल्ट रूप से 10 पर सेट है (फिर से, Aduino DUE मेमोरी सीमा)।

साथ ही, कई अलग-अलग उपकरणों से MIDI धाराएँ, प्रत्येक अपने स्वयं के चैनल पर संचारित होती हैं, समर्थित हैं; इसका मतलब है कि आप एक साथ कई मिडी उपकरणों को रिकॉर्ड कर सकते हैं, स्तरित या अपने स्वयं के ट्रैक के साथ (अगले चरण पर अधिक पेशेवर;))।

यदि इन सीमाओं के साथ रहना उचित लगता है (और यह मेरे लिए है), तो आपके पास इस चीज़ के साथ बहुत अच्छा समय होगा;)

चरण 2: यह कैसे काम करता है

यहां का मिडी लूप स्टेशन संचालित करने के लिए बहुत आसान है। यह उन हार्डवेयर ऑडियो लूप स्टेशनों के समान काम करता है जो प्रत्येक गिटार पेडल निर्माता की अपनी सूची में होते हैं।

1) उस ट्रैक का चयन करें जिसमें आप अपना मिडी अनुक्रम रिकॉर्ड करना चाहते हैं। डिफ़ॉल्ट रूप से ट्रैक "एक" चुना जाता है, लेकिन आप इसे ट्रैक बटनों में से एक (प्रत्येक ट्रैक के लिए एक) दबाकर बदल सकते हैं।

2) जब आप पहली बार "आरईसी" स्विच/फुट पेडल दबाते हैं, तो लूपर लगा रहता है। हरी एलईडी रोशनी करती है। यह वास्तविक अनुक्रम/रिफ रिकॉर्ड करने से पहले आपका पहला नोट प्राप्त होने तक प्रतीक्षा करेगा।

3) जब आप अपना अनुक्रम समाप्त कर लें, तो रिफ़ की वास्तविक लंबाई को परिभाषित करने के लिए "आरईसी" स्विच/फुट पेडल को फिर से दबाएं। हरी एलईडी लाइट बंद। लूपर आपके MIDI अनुक्रम को तुरंत पुन: पेश करना शुरू कर देगा। यदि आप अधिकतम समय तक पहुँच जाते हैं, तो रिकॉर्डिंग अपने आप बंद हो जाएगी और अनुक्रम एक लूप में पुन: उत्पन्न होना शुरू हो जाएगा।

4) अब, आप वर्तमान ट्रैक पर अपने अनुक्रम को ओवरडब करने का निर्णय ले सकते हैं या "आरईसी" स्विच/फुट पेडल को दबा कर उस पर एक नया ट्रैक और रिकॉर्ड चुन सकते हैं। दोनों ही मामलों में पीला एलईडी प्रकाश करेगा, भले ही नया ट्रैक खाली हो, क्योंकि यह एक "गुलाम" ट्रैक है (रिकॉर्ड किए गए पहले ट्रैक के लिए गुलाम)। ओवरडबिंग रोकने के लिए फिर से दबाएं (पीली एलईडी बंद हो जाती है)।

आप में से जो ऑडियो लूपिंग स्टेशनों के साथ सहज हैं, उनके लिए इस MIDI प्रगति को "REC/PLAY/OVERDUB" कहा जाता है और यह एकमात्र समर्थित है।

यदि किसी भी समय आपको लगता है कि आपका नवीनतम ओवरडब ठीक नहीं है, तो आप "पूर्ववत करें" स्विच/फुट पेडल दबाकर इसे हटा सकते हैं। आप "आरईसी" पेडल को 3 सेकंड से अधिक समय तक दबाए रखकर पूरे वर्तमान ट्रैक को साफ़ कर सकते हैं; आप एक ही समय में पहले तीन ट्रैक बटन दबाकर या सभी उपयोग किए गए ट्रैक को साफ़ करके लूपर (सॉफ़्टवेयर रीसेट) को रीसेट कर सकते हैं।

आप वर्तमान ट्रैक के ट्रैक बटन को दबाकर किसी ट्रैक को म्यूट/अनम्यूट कर सकते हैं।

आप पैनिक भेज सकते हैं! पैनिक बटन दबाकर मैसेज करें। आप पैनिक भी भेज सकते हैं! एक ही समय में पहले दो ट्रैक बटन दबाकर संदेश।

लूपर में एक सरल मेट्रोनोम बनाया गया है: नोट नंबर "64" के लिए MIDI संदेश पर एक नोट चैनल 10 पर 100 बीपीएम पर भेजा जाता है (वह चैनल जिसे आप संभवतः अपनी ड्रम मशीन सुन रहे हैं)। आप ऑप्टिकल एन्कोडर को ट्यूरिंग करके टेम्पो को बढ़ा या घटा सकते हैं; ऑप्टिकल एन्कोडर स्विच को निराशाजनक करके आप मेट्रोनोम को सक्षम/अक्षम कर सकते हैं। ध्यान दें कि मिडी नोट "64" प्राप्त करते समय आपकी ड्रम मशीन को ध्वनि (स्नेयर, बास या जो भी ध्वनि आप पसंद करते हैं) चलाने के लिए सेट की जानी चाहिए या मेट्रोनोम म्यूट हो जाएगा।

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

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

महत्वपूर्ण नोट: मेरे चित्रों में हार्डवेयर एक प्रोटोटाइप है। मैंने जरूरत से ज्यादा जैक सॉकेट का इस्तेमाल किया लेकिन पटरियों के लिए केवल चार बटन। ऐसा इसलिए है क्योंकि जब मैंने परियोजना शुरू की थी तो मुझे पूरी तरह से यकीन नहीं था कि अंतिम आवश्यकताएं क्या होंगी।

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

चरण 3: हार्डवेयर

हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर

सामग्री के बिल:

पूर्ण विशेषताओं वाले 5-ट्रैक मिडी लूप स्टेशन

1x Arduino कारण

7x क्षणिक पुश बटन

1x प्लास्टिक केस (मैंने 150 x 110 x 70 मिमी केस का इस्तेमाल किया)

2x 5-पिन दीन महिला पैनल माउंट मिडी सॉकेट कनेक्टर

1x 6.3 मिमी पैनल माउंट जैक सॉकेट

1x डबल पक्षीय 50x70 मिमी पूर्ण बोर्ड

5x 3 मिमी एलईडी (हरा)

1x 3 मिमी एलईडी (पीला)

1x ऑप्टिकल एनकोडर

1x H11L1 ऑप्टोकॉप्लर

1x 1N4148 डायोड

3x 1000 ओम प्रतिरोधक

3x 220 ओम प्रतिरोधक

10x 470 ओम प्रतिरोधक

कुछ सोल्डर वायर, कुछ केबल, सोल्डरिंग स्टेशन… और खाली समय:)

परियोजना को पूरा करने के लिए आवश्यक समय: 6-9 घंटे

यूएनओ क्यों नहीं?

पहले परीक्षण (और एक प्रारंभिक कार्य कोड) एक "नियमित" arduino UNO बोर्ड पर लिखा गया था। इस बोर्ड में रैम की सीमा है जिसने मुझे पॉलीफोनी को "4" तक कम करने के लिए मजबूर किया, अधिकतम लंबाई 4 सेकंड से कम और अधिकतम 40 एमएस का संकल्प। यह कोई मल्टीचैनल हैंडलिंग के साथ नहीं है। वेलोसिटी ट्रैकिंग को भी हटाकर, मैं रिकॉर्डिंग समय को 7 सेकंड तक बढ़ाने में सक्षम था।

यूएनओ के साथ आप तब "काम कर रहे" मिडी लूप स्टेशन का एहसास कर सकते हैं, लेकिन अत्यधिक सीमित।

चरण 4: सॉफ्टवेयर

सॉफ्टवेयर FortySevenEffects MIDI लाइब्रेरी पर बहुत अधिक निर्भर करता है। यह पुस्तकालय बहुत अच्छा है और मेरे जैसे गैर कोडर गीक्स के लिए भी इस तरह की परियोजनाओं को करने योग्य बनाता है।

Arduino IDE और इसका समुदाय इस "सफलता" का एक और महत्वपूर्ण हिस्सा है।

मैं इस बारे में विवरण में नहीं जाऊंगा कि स्केच को आपके arduino DUE पर कैसे अपलोड किया जाए। यदि यह arduino IDE के साथ आपका पहला अनुभव है, तो कृपया इसे पहले पढ़ें।

मैंने दो पूरी तरह से अलग दृष्टिकोणों के आधार पर कोड के दो अलग-अलग संस्करण लिखे।

संस्करण 1 का कार्य सिद्धांत यह है कि Arduino DUE की रिकॉर्डिंग या ओवरडबिंग के दौरान इसकी (अस्थिर) मेमोरी में समर्थित MIDI ईवेंट (नोट ऑन, नोट ऑफ, कंट्रोल चेंज और पिच बेंड) की जांच करता है; समय अक्ष को 20 एमएस चरणों में परिमाणित किया जाता है और प्राप्त संदेशों को तदनुसार उन स्लॉट में संग्रहीत किया जाता है। खेलते समय, संग्रहीत MIDI संदेशों को समय परिमाणीकरण का सम्मान करते हुए वापस सिंथ में भेजा जाता है।

इसके बजाय, संस्करण 2 का कार्य सिद्धांत मिडी घटना और उस समय को "बस" रिकॉर्ड करना है जिस पर घटना को ट्रिगर किया जाना चाहिए। संस्करण 2 में संस्करण 1 (पिछले चरण पर सूचीबद्ध) की तुलना में भिन्न सीमाएं हैं। उन दोनों को आजमाएं और जो आपके लिए बेहतर काम करता है उसका उपयोग करें।

एक प्रीलिमिनर क्लॉक हैंडलिंग भी है, लेकिन इसे काम करने के लिए कुछ ट्वीक की आवश्यकता होगी जैसा कि इसे करना चाहिए। कोड मानता है कि आप 4/4 - 4 बार लूप (16 बीट्स) रिकॉर्ड करते हैं।

आप लूपर को चालू करते समय "पैनिक" बटन दबाकर बाहरी घड़ी को निष्क्रिय कर सकते हैं।

कोड यहां अपलोड किए गए हैं। उन सभी पर टिप्पणियाँ रखी जाती हैं, ताकि आप अपनी इच्छा से उन फ़र्मवेयर को मोड़ सकें;)

चरण 5: तारों

वायरिंग
वायरिंग
वायरिंग
वायरिंग
वायरिंग
वायरिंग

संलग्न चित्रों में MIDI IN और MIDI OUT सर्किट की सूचना दी गई है। ध्यान दें कि TX1 और RX1 का उपयोग किया जाता है, TX0 और RX0 का नहीं।

Arduino DUE इनपुट पिन 5V, लेकिन 3.3V को संभाल नहीं सकता है; यही कारण है कि एक अधिक सामान्य 6N138 के बजाय एक H11L1 ऑप्टोकॉप्लर का उपयोग किया जाता है। मेरे पास सबूत हैं कि TX1 में जाने वाले सिग्नल वोल्टेज को कम करने के लिए वोल्टेज विभक्त के साथ 6N138 युग्मित का उपयोग करना, जैसा कि मेरे पहले प्रोटोटाइप में, कुछ सेटअपों में गलत तरीके से काम कर सकता है।

एल ई डी 470 ओम प्रतिरोधों के माध्यम से Arduino DUE आउटपुट पिन से जुड़े हैं। एलईडी में जाने वाले करंट को कम करने और उनकी चमक को कम करने के लिए आप 1K ओम तक के रेसिस्टर्स का उपयोग कर सकते हैं।

स्केच में सक्रिय इनपुट पुलअप रेसिस्टर्स की बदौलत बटन/स्विच/जैक सीधे Arduino इनपुट पिन से जुड़े होते हैं। बाहरी (पुलडाउन) प्रतिरोधों की कोई आवश्यकता नहीं है।

ऑप्टिकल एनकोडर GND और +5V से जुड़ा है। यह 2 480 ओम प्रतिरोधों से गुजरने वाले Arduino इनपुट पिन पर जाता है, प्रत्येक ऑप्टिकल डेटा आउटपुट के लिए एक।

Arduino DUE सीधे 5V पिन और ग्राउंड से +5V DC हब के माध्यम से संचालित होता है।

सभी मैदान आपस में बंधे हुए हैं।

संलग्न एक तालिका है जिसमें arduino पिन से IN/OUT परिधीय कनेक्शन है। Arduino पिन नंबर मेरे प्रोटोटाइप हार्डवेयर में उन लोगों को दर्शाते हैं और देख सकते हैं (वे किसी तरह…) यादृच्छिक हैं। आप अपनी इच्छानुसार स्केच में पिन स्थान को आसानी से संशोधित कर सकते हैं;)

चरण 6: क्या होगा यदि मेरे पास एक से अधिक मिडी स्रोत हैं?

क्या होगा यदि मेरे पास एक से अधिक MIDI स्रोत हैं?
क्या होगा यदि मेरे पास एक से अधिक MIDI स्रोत हैं?

MIDI विलय के लिए एक संक्षिप्त खोज के बाद, मैंने पाया कि सबसे व्यावहारिक (और सस्ता) समाधान MIDI स्विचर था।

MIDI स्विचर एक निष्क्रिय डिवाइस है जो MIDI स्रोत को सक्षम करता है और अन्य सभी स्रोतों को अक्षम करता है। इतना ही आसान।

मिडी स्विचर का दिल एक बहु स्थिति (मेरा 6 स्थिति है), 2 ध्रुव स्विच है। यह बहुत महत्वपूर्ण है कि डंडे की संख्या "2" है क्योंकि प्रत्येक मिडी सॉकेट को पूरी तरह से काट दिया जाना चाहिए यदि अचयनित है और दूसरों के साथ संचार में नहीं है। संलग्न एक तस्वीर है जिसे मैंने अपने उपयोग के लिए महसूस किया है।

इस लिंक पर एक योजना।

सिफारिश की: