विषयसूची:

बेसिक Arduino MIDI नियंत्रक: 5 कदम
बेसिक Arduino MIDI नियंत्रक: 5 कदम

वीडियो: बेसिक Arduino MIDI नियंत्रक: 5 कदम

वीडियो: बेसिक Arduino MIDI नियंत्रक: 5 कदम
वीडियो: 10. Миди контроллер на Arduino Nano|Arduino| Midi 2024, जुलाई
Anonim
मूल Arduino MIDI नियंत्रक
मूल Arduino MIDI नियंत्रक

परिचय:

मैं Arduino के साथ काम करने के लिए नया हूं लेकिन मुझे उम्मीद है कि मैं दूसरों को पढ़ाकर और प्रतिक्रिया प्राप्त करके अपने ज्ञान का विस्तार करूंगा। यह 4 बटन और एक पोटेंशियोमीटर के साथ एक बहुत ही बुनियादी मिडी नियंत्रक है। इस परियोजना की रूपरेखा इस तरह दिखती है:

1. ब्रेडबोर्ड बनाएं

2. स्केच को Arduino पर अपलोड करें

3. हेयरलेस मिडी और आंतरिक मिडी लूप को समझें (लूपबी 1)

4. अपने MIDI को DAW (एबलटन) में रूट करें

आपूर्ति

1 एक्स अरुडिनो मेगा 2560

1 एक्स ब्रेड बोर्ड

1 एक्स यूएसबी केबल

1 एक्स पोटेंशियोमीटर

4 एक्स चातुर्य बटन

4 x 120Ohm रेसिस्टर्स

ब्रेडबोर्ड के लिए 14 x जम्पर केबल

चरण 1: ब्रेडबोर्ड का निर्माण

ब्रेडबोर्ड का निर्माण
ब्रेडबोर्ड का निर्माण
ब्रेडबोर्ड का निर्माण
ब्रेडबोर्ड का निर्माण

अपना ब्रेडबोर्ड कनेक्ट करें ताकि सभी घटक ऊपर की छवि 1 से मेल खाते हों। प्रत्येक बटन छवि 2 के समान दिखना चाहिए। Arduino पर बटन इनपुट 2, 3, 4 और 5 हैं और पोटेंशियोमीटर का मध्य पिन ANALOG इनपुट A0 से जुड़ा है।

चरण 2: स्केच अपलोड करना

स्केच अपलोड करना
स्केच अपलोड करना

नीचे दिए गए कोड को Arduino IDE में कॉपी और पेस्ट करें। "टूल्स" के तहत सही बोर्ड का चयन करें और स्केच को Arduino पर अपलोड करें।

बाइट नोटऑन = १४४;//कमांडबाइट नोट पर नोट;//वर्तमान में चल रहे नोट इंट बटनपिन१ = २ के लिए भंडारण; इंट बटनपिन२ = ३; इंट बटनपिन३ = ४; इंट बटनपिन4 = 5; इंट पॉटपिन = ए0; बूलियन करंटस्टेट = कम; // वर्तमान बटन स्थिति के लिए स्ट्रॉज बूलियन लास्टस्टेट = कम; // अंतिम बटन स्थिति के लिए भंडारण शून्य सेटअप () {पिनमोड (बटनपिन 1, इनपुट); पिनमोड (बटनपिन 2, इनपुट); पिनमोड (बटनपिन 3, इनपुट); पिनमोड (बटनपिन 4, इनपुट); // इस बार हम पिन को इनपुट सीरियल के रूप में सेट करेंगे। बाइट वेग = मानचित्र (पोटवैल, 0, 1023, 0, 127); करंटस्टेट = डिजिटलरेड (बटनपिन 1); if (currentState == High && lastState == LOW){ MIDImessage(noteON, 60, वेलोसिटी);//नोट ६० को १२७ वेलोसिटी डिले (२००) के साथ चालू करें;//बटन डिबगिंग का क्रूड फॉर्म} और अगर (currentState == LOW && lastState == High){ MIDImessage(noteON, ६०, ०);//टर्न नोट ६० ऑफ डिले(२);//बटन डिबगिंग का क्रूड फॉर्म } lastState = currentState; करंटस्टेट = डिजिटलरेड (बटनपिन 2); if (currentState == High && lastState == LOW){//if बटन को अभी MIDImessage (नोटऑन, ६१, वेलोसिटी) दबाया गया है;//नोट ६० को १२७ वेलोसिटी डिले (२००) के साथ चालू करें;//बटन का क्रूड फॉर्म डिबगिंग } और अगर (करंटस्टेट == लो && लास्टस्टेट == हाई) {मिडीमेसेज (नोटऑन, ६०, ०);//टर्न नोट ६० ऑफ डिले (२);//बटन डिबाउटिंग का क्रूड फॉर्म } lastState = currentState; करंटस्टेट = डिजिटलरेड (बटनपिन ३); if (currentState == High && lastState == LOW) {// if बटन को अभी MIDImessage (नोटऑन, 62, वेलोसिटी) दबाया गया है;//नोट 60 को 127 वेलोसिटी डिले (200) के साथ ऑन करें;//बटन का क्रूड फॉर्म डिबगिंग} और अगर (currentState == LOW && lastState == HIGH) {MIDImessage (नोटऑन, ६०, ०);//नोट ६० ऑफ डिले (२);//बटन डिबगिंग का क्रूड फॉर्म} lastState = currentState; करंटस्टेट = डिजिटलरेड (बटनपिन 4); if (currentState == High && lastState == LOW){//if बटन को अभी MIDImessage (नोटऑन, 63, वेलोसिटी) दबाया गया है;//नोट 60 को 127 वेलोसिटी डिले (200) के साथ ऑन करें;//बटन का क्रूड फॉर्म डिबगिंग} और अगर (currentState == LOW && lastState == HIGH) {MIDImessage (नोटऑन, ६०, ०);//नोट ६० ऑफ डिले (२);//बटन डिबगिंग का क्रूड फॉर्म} lastState = currentState; } // भेजें MIDI संदेश शून्य MIDImessage (बाइट कमांड, बाइट डेटा 1, बाइट डेटा 2) {Serial.write (कमांड); सीरियल.राइट (डेटा 1); सीरियल.राइट (डेटा 2); }

मैं अभी भी सामान्य रूप से कोड लिखने के लिए बहुत नया हूं….. थोड़ा और अनुभव वाले लोग शायद इसे साफ कर सकते हैं …

चरण 3: हेयरलेस मिडी और आंतरिक मिडी लूप्स को समझना

हेयरलेस मिडी और आंतरिक मिडी लूप्स को समझना
हेयरलेस मिडी और आंतरिक मिडी लूप्स को समझना
हेयरलेस मिडी और आंतरिक मिडी लूप्स को समझना
हेयरलेस मिडी और आंतरिक मिडी लूप्स को समझना
हेयरलेस मिडी और आंतरिक मिडी लूप्स को समझना
हेयरलेस मिडी और आंतरिक मिडी लूप्स को समझना

Arduino को हेयरलेस MIDI जैसे सीरियल ब्रिज के माध्यम से चलाने की आवश्यकता होती है, फिर आंतरिक MIDI लूप जैसे लूपबी 1 (या मैक के लिए IAC बस) के माध्यम से।

ध्यान दें: आप Arduino पर एक स्केच अपलोड नहीं कर सकते, जबकि यह बिना बालों वाले MIDI सीरियल ब्रिज से जुड़ा है।

हेयरलेस MIDI सीरियल पोर्ट में अपने Arduino और MIDI आउट में लूपबी 1 या IAC बस का चयन करें।

नोट: सुनिश्चित करें कि लूपबी 1 का उपयोग करते समय म्यूट चालू नहीं है।

चरण 4: अपने DAW से जुड़ना

अपने DAW से जुड़ना
अपने DAW से जुड़ना

यदि आप ब्रेडबोर्ड पर एक बटन दबाते समय हेयरलेस मिडी ऐप को सिग्नल प्राप्त कर रहे हैं (रोशनी फ्लैश होगी) तो आपको डीएडब्ल्यू को मिडी डेटा भेजने में सक्षम होना चाहिए। मैंने एबलेटन का इस्तेमाल किया लेकिन किसी भी डीएडब्ल्यू को काम करना चाहिए। सुनिश्चित करें कि आपका आंतरिक MIDI लूप (loopbe1) आपकी DAW प्राथमिकताओं में सक्षम है (Ableton में आप "ट्रैक" को सक्षम करना चाहते हैं)। इसके बाद, MIDI लूप (loopbe1) में अपने MIDI ट्रैक इनपुट में से एक का चयन करें जैसा कि ऊपर की छवि में दिखाया गया है।

चरण 5: खेलो

Image
Image

बटन अब किसी भी अन्य MIDI नियंत्रक की तरह काम करेंगे! पोटेंशियोमीटर डीएडब्ल्यू को भेजे जा रहे नोटों के वेग को बदल देगा। उपरोक्त (बहुत गहरा…) वीडियो कार्रवाई में एक भव्य पियानो ध्वनि दिखाता है!

सिफारिश की: