Arduino के साथ अपना खुद का MIDI कंट्रोलर बनाएं

मिडी

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

मिडी नियंत्रक क्या है, इसे बेहतर ढंग से समझने के लिए आपको बता दें कि मिडी शब्द से आया है संगीत वाद्ययंत्र डिजिटल इंटरफ़ेस, अर्थात्, एक प्रकार का नियंत्रक जो इलेक्ट्रॉनिक संगीत उपकरणों को एक दूसरे के साथ संवाद करने में सक्षम बनाता है। यदि आपके पास घर पर एक इलेक्ट्रॉनिक कीबोर्ड है, उदाहरण के लिए, यह संभावना से अधिक है कि इसमें MIDI इंटरफ़ेस है। आगे बढ़ने से पहले, इस तथ्य के बावजूद कि कुछ तकनीकी विवरण हैं जो आपको अन्यथा विश्वास करने के लिए प्रेरित कर सकते हैं, आपको बहुत स्पष्ट होना चाहिए मिडी ऑडियो नहीं है.

इस सरल ट्यूटोरियल के साथ अपना मिडी नियंत्रक बनाएं

एक बार जब हम इस बारे में स्पष्ट हो जाते हैं, तो निश्चित रूप से यह समझना आपके लिए बहुत आसान हो जाएगा कि मिडी सिर्फ एक सरल है निर्देश सेट 16 स्वतंत्र चैनलों का समर्थन करने में सक्षम है, जिसका अर्थ है कि एक-दूसरे के साथ स्वतंत्र रूप से संवाद करने वाले 16 तक विभिन्न डिवाइस हो सकते हैं। इन उपकरणों को 5-पिन डीआईएन केबल के माध्यम से जोड़ा जाना है, जो मूल रूप से एक कनेक्टर के अंदर पांच पिन के साथ एक केबल है। विवरण के रूप में, 5-पिन डीआईएन के बजाय यूएसबी का उपयोग करना काफी आम है, यूएसबी का उपयोग करने के मामले में हमें एक यूएसबी-मिडी इंटरफेस बनाना होगा।

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

संबंधित लेख:
हमारे रास्पबेरी पाई पर पाई उपयोगकर्ता नाम और पासवर्ड कैसे बदलें

Arduino के साथ अपना खुद का MIDI कंट्रोलर कैसे बनाएं

मिडी संबंधक

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

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

रोबोट कैसे बना
संबंधित लेख:
रोबोट कैसे बनाएं: 3 अलग-अलग विकल्प

मिडी नियंत्रक क्या है?

midi

मूल रूप से, एक MIDI नियंत्रक जिम्मेदार है, मोटे तौर पर बोल, विभिन्न संगीत उपकरणों को एक दूसरे से जोड़ने के लिए। कई ऐसे उपकरण हैं जो एक MIDI इंटरफ़ेस को शामिल करते हैं, हालांकि यह बहुत स्पष्ट होना चाहिए क्योंकि कई उपयोगकर्ता हैं जो अक्सर भ्रमित होते हैं, MIDI एक ऑडियो फ़ाइल नहीं है, लेकिन निर्देशों का एक बहुत ही सरल सेट है जो एक उपकरण को अलग-अलग नियंत्रण बनाने के लिए प्राप्त कर सकता है। या ध्वनि सेटिंग्स।

मिडी के अंदर दो अलग-अलग प्रकार हैंएक तरफ हमारे पास चेंज कंट्रोल नाम से एक है जहां नियंत्रक संख्या और 0 और 127 के बीच का मूल्य है। इसके लिए, संदेश जारी किए जा सकते हैं जहां विभिन्न मापदंडों जैसे वॉल्यूम या टोन को बदला जा सकता है। विभिन्न उपकरण जो मिडी को स्वीकार करते हैं, उन्हें अपने साथ एक मैनुअल लाना चाहिए जिसमें समझाया जाए कि कौन से चैनल और संदेश डिफ़ॉल्ट रूप से सेट किए गए हैं और उन्हें कैसे बदलना है।

दूसरे स्थान पर हमारे पास प्रोग्राम चेंज है, संदेशों की एक श्रृंखला है जो बदले में उन लोगों की तुलना में बहुत सरल है जो चेंज कंट्रोल को बनाते हैं। इस प्रकार के संदेशों का उपयोग किसी उपकरण के प्रीसेट या पैच को बदलने के लिए किया जाता है। चेंज कंट्रोल के रूप में, आपके इंस्ट्रूमेंट के साथ-साथ निर्माता को एक मैनुअल संकेत देना चाहिए जिसमें यह दर्शाया गया हो कि कौन से प्रीसेट एक विशेष संदेश द्वारा बदले गए हैं।

अपने खुद के घर का बना मिडी नियंत्रक बनाने के लिए आवश्यक भागों

मिडी कनेक्टर योजनाबद्ध

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

हमें एक 5-पोल महिला डीआईएन केबल, 2 220 ओम प्रतिरोधों, 2 क्षणिक स्विच, 2 10k ओम प्रतिरोधों, कनेक्शन तारों, एक सर्किट बोर्ड, मिडी केबल और एक मिडी डिवाइस या यूएसबी इंटरफेस की आवश्यकता होगी। केवल इन टुकड़ों के साथ, आप अपने स्वयं के मिडी नियंत्रक बनाने के लिए, मेरे चरणों का पालन कर सकते हैं।

पहला कदम

अरुडिनो मिडी योजनाबद्ध

शुरू करने से पहले मैं आपको एक तस्वीर छोड़ता हूं जहां आप अपने मिडी केबल के पिन देख सकते हैं, इस तरह से हम सही ढंग से पिन की पहचान कर सकते हैं और विशेष रूप से जहां हर एक को कनेक्ट कर सकते हैं। मोटे तौर पर, इस बिंदु पर आपको बस इतना करना है कि केबल के पिन 5 को 220 ओम अवरोधक से कनेक्ट करें और वहां से Arduino Transmit 1, पिन 4 से 220 ओम रोकनेवाला और वहां से Arduino के 5V सॉकेट तक पिन करें 2 आपके नियंत्रक के ग्राउंड कनेक्शन से जुड़ा होना चाहिए।

एक बार यह चरण पूरा हो जाने के बाद, आपके पास फोटो में एक विस्तृत आरेख नहीं है जो इन पंक्तियों के ठीक नीचे स्थित है, यह बटन कनेक्ट करने का समय है। इस अनुभाग में विचार डिजिटलरेड पिन का उपयोग करके प्राप्त करने के लिए है (यह पता लगाने में सक्षम है कि वोल्टेज जब इसे बदलता है) एक बटन के प्रेस के साथ प्राप्त करने के लिए एक ट्रांजिस्टर का उपयोग करने में सक्षम हो। इसके लिए हमें केवल एक बटन का उपयोग करना है ताकि, इसके बाईं ओर हम इसे 5V से जोड़ दें, दाईं ओर एक 220 ओम प्रतिरोध के लिए और वहां से जमीन तक जबकि बदले में, हम दाईं ओर को पिन 6 से जोड़ते हैं । दूसरा बटन उसी तरह से लगाया जाएगा, जैसा कि आप चित्र में देख सकते हैं, पिन 6 के बजाय हम इसे 7 से जोड़ते हैं।

घर मिडी नियंत्रक के लिए उपयोग करने के लिए सॉफ्टवेयर

एक बार जब हम सभी हार्डवेयर के साथ समाप्त हो जाते हैं, तो यह हमारे साधन और परीक्षण को जोड़ने का समय है। इससे पहले हमें एक होना चाहिए USB-MIDI इंटरफ़ेस और एक MIDI केबल कनेक्ट करने के लिए बोर्ड, जो डेटा भेज रहा है, हमारे कंप्यूटर के साथ। इसे प्राप्त करने के लिए, हमने फोर्टी सेवन इफेक्ट्स से लोगों द्वारा बनाई गई MIDI v4.2 लाइब्रेरी को चुना है जिसे हमने अपने Arduino पर स्थापित किया होगा और परियोजना में शामिल किया होगा।

कंप्यूटर के मामले में, हमें एक ऐसे कार्यक्रम की आवश्यकता होगी जो Arduino से आने वाले सभी MIDI डेटा की निगरानी करने में सक्षम हो। इसके लिए हमारे पास अलग-अलग संभावनाएं हैं जैसे मिडी मॉनिटर (OS X), MIDI-OX (Windows) या Kmidimon (Linux)

थोड़ा परीक्षण करने के लिए हमें बस अपने कंप्यूटर पर Arduino कनेक्ट करना होगा और निम्नलिखित कोड निष्पादित करना होगा:

#include
#include
#include
#include
#include

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // crear objeto de salida MIDI llamado midiOut

void setup() {
Serial.begin(31250); // configuracion de serial para MIDI
}

void loop() {
midiOut.sendControlChange(56,127,1); // envío de señal MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(1000); // retraso
midiOut.sendProgramChange(12,1); // envío de una señal MIDI PC -- 12 = valor, 1 = canal
delay(1000); // retraso de 1 segundo
}

यदि सब कुछ ठीक हो गया है, तो आप बटन परीक्षण पर जा सकते हैं, यदि इस परीक्षण ने आपके लिए काम नहीं किया है, तो आपको यह सुनिश्चित करना होगा कि सभी कनेक्शन सही हैं, सर्किट पिछले चित्र के समान ही है, सर्किट एक MIDI केबल के साथ USB-MIDI इंटरफ़ेस से जुड़ा है, MIDI पोर्ट केबल सही ढंग से जुड़े हुए हैं, MIDI केबल USB-MIDI इंटरफ़ेस के इनपुट से जुड़ा है, Arduino बोर्ड विद्युत नेटवर्क से सही ढंग से जुड़ा हुआ है और इसमें पर्याप्त शक्ति है ...

परीक्षण कि बटन सही ढंग से काम करते हैं

नई कार्यक्षमता और कोड के साथ अपने कार्यक्रम को जारी रखने से पहले जिसे हम खो सकते हैं, यह एक पल के लिए रुकने लायक है और परीक्षण करें कि बटन ठीक से काम करते हैं। उनके लिए हमें निम्नलिखित कोड लोड करना होगा:

const int boton1 = 6; // asignacion del boton a una variable
const int boton2 = 7; // asignacion del boton a una variable

void setup() {
Serial.begin(9600); // configuracion del serial
pinMode(boton1,INPUT); // configuracion del boton1 como entrada
pinMode(boton2,INPUT); // configuracion del boton2 como entrada
}

void loop() {

if(digitalRead(boton1) == HIGH) { // prueba de estado del boton1
delay(10); // retraso
if(digitalRead(boton1) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 1 funciona correctamente!"); // log
delay(250);
}
}

if(digitalRead(boton2) == HIGH) { // prueba de boton 2
delay(10); // retraso
if(digitalRead(boton2) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 2 funciona correctamente!"); // log
delay(250);
}
}

}

इस कोड को बस संकलित और निष्पादित किया जाना है ताकि, USB केबल जुड़े होने के साथ, प्रोग्राम हमें बताए कि क्या किसी भी बटन को दबाया गया है।

हम अपना होममेड MIDI कंट्रोलर बनाते हैं

एक बार जब हम इन परीक्षणों को क्रियान्वित कर लेते हैं, तो उस समय के लिए हमारे अपने MIDI नियंत्रक को इकट्ठा करने का समय है, आपको केवल निम्नलिखित कोड को संकलित करना होगा:

#include
#include
#include
#include
#include

const int boton1 = 6; // asignamos boton a la variable
const int boton2 = 7; // asignamos boton a la variable

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut

void setup() {
pinMode(boton1,INPUT); // configuracion del boton1 como una entrada
pinMode(boton2,INPUT); // configuracion del boton2 como una entrada
Serial.begin(31250); // configuracion MIDI de salida
}

void loop() {
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado de nuevo
midiOut.sendControlChange(56,127,1); // envío un MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonTwo) == HIGH) { // nueva comprobacion de estado
midiOut.sendControlChange(42,127,1); // envío un MIDI CC -- 42 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}
}

विस्तार से बताएं कि आप इस समय MIDI आउटपुट के साथ Serial.println () कमांड का उपयोग नहीं कर सकते हैं, यदि आप कंप्यूटर पर किसी प्रकार का संदेश दिखाना चाहते हैं, तो बस बदलें:

midiOut.sendControlChange(42,127,1);

द्वारा:

midiOut.sendControlChange(value, channel);

जहां मान और चैनल में वांछित मान होना चाहिए जिसे आप प्रदर्शित करना चाहते हैं।

ऑपरेशन उदाहरण:


4 टिप्पणियाँ, तुम्हारा छोड़ दो

अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   अल्फ़्रेड कहा

    Arduino आपको अपने दम पर परियोजनाओं को शुरू करने के लिए कई संभावनाएं प्रदान करता है https://www.juguetronica.com/arduino । सबसे अच्छी चीजों में से एक यह है कि आप एक विशेषज्ञ के बिना शुरू कर सकते हैं और सीखने जा सकते हैं, इस प्रकार खुद को आत्म-सिखाया जा सकता है।

  2.   डेनियल रोमन कहा

    नमस्ते.

    मैं इस शानदार ट्यूटोरियल को अंजाम देने की कोशिश कर रहा हूं ... लेकिन #includes पूरा नहीं हुआ है।

    क्या आप मुझे बता सकते हैं कि कौन से आवश्यक हैं?

    बहुत बहुत धन्यवाद.

  3.   उले कहा

    हे.
    मैं जैक इनपुट के साथ बटनों को बदलकर एक इलेक्ट्रॉनिक ड्रम मॉड्यूल बनाना चाहूंगा जिसमें एक पीजोइलेक्ट्रिक सिग्नल आ जाएगा।
    क्या ऐसा करना संभव होगा?

  4.   एडुआर्डो वालेंज़ुएला कहा

    कृपया यदि आप इस कोड को शामिल कर सकते हैं, तो मुझे इस परियोजना में दिलचस्पी है।