विषयसूची:

एक और मिडी से सीवी बॉक्स: 7 कदम (चित्रों के साथ)
एक और मिडी से सीवी बॉक्स: 7 कदम (चित्रों के साथ)

वीडियो: एक और मिडी से सीवी बॉक्स: 7 कदम (चित्रों के साथ)

वीडियो: एक और मिडी से सीवी बॉक्स: 7 कदम (चित्रों के साथ)
वीडियो: 4 Single Pole MCB and 1 DP MCB full connection in MCB Box ।। MCB connection ।। mcb wiring connection 2024, नवंबर
Anonim
सीवी बॉक्स के लिए एक और मिडी
सीवी बॉक्स के लिए एक और मिडी

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

Korg MS20/10 MIDI को लागू करने के लिए सबसे आसान सिंक नहीं हैं: सबसे पहले, वे अक्टूबर/V (1V प्रति सप्तक) के बजाय Hz/V नियंत्रण (नियंत्रण वोल्टेज और नोट आवृत्ति के बीच रैखिक सहसंबंध) पर भरोसा करते हैं; दूसरा, एक नोट को ट्रिगर करने के लिए आपको एक नकारात्मक गेट सिग्नल भेजना होगा और इनपुट को ग्राउंड (एस-ट्रिग) में छोटा करना होगा, न कि +5 वी सिग्नल (वी-ट्रिग)।

आजकल ऐसे उपकरणों को नियंत्रित करने के लिए विभिन्न व्यावसायिक समाधान हैं (यानी आर्टुरिया बीटस्टेप प्रो, कॉर्ग एसक्यू -1, केंटन सोलो) लेकिन मैं एक सस्ता कमीने हूं और यहां तक कि 100 यूरो भी "नॉट साउंडिंग" डिवाइस के लिए बहुत अधिक हैं:)।

यहां हम हैं: मैं आपको दिखाता हूं कि बाहरी मिडी नियंत्रक (कीबोर्ड, डीएडब्ल्यू, सीक्वेंसर या जो भी) के साथ प्री-मिडी सिंथेस की पिच, गेट, वेग और कटऑफ आवृत्ति को नियंत्रित/स्वचालित करने के लिए कम बजट मिडी से सीवी बॉक्स कैसे बनाया जाए।.

"नए MS20 मिनी के बारे में क्या?"

जैसा कि लगभग किसी को भी पता है, नया MS20 वास्तव में MIDI तैयार है: 5 पोल्स MIDI कनेक्टर के साथ और USB कनेक्टर के साथ IN/OUT।

"तो, अगर मेरे पास MS20 मिनी है तो यह बात बेकार है!"

नहीं। MS20 मिनी केवल नोट ऑन/ऑफ संदेशों को पहचानता है और कीबोर्ड वेग संवेदनशील नहीं है। MS10/20 विंटेज या मिनी कीबोर्ड के साथ इसे दूर करने का कोई तरीका नहीं है, लेकिन मिडी बॉक्स और एक वेग संवेदनशील कीबोर्ड के साथ आप सुनहरे हैं। इसके अलावा, MIDI बॉक्स के साथ आप फ़िल्टर कटऑफ (या किसी अन्य वोल्टेज नियंत्रणीय पैरामीटर) को स्वचालित कर सकते हैं या इसे वेग पर आने वाले MIDI नोट द्वारा संशोधित कर सकते हैं। फिर से, केवल MIDI चैनल MS20 मिनी का जवाब चैनल 1 है। इस बॉक्स के साथ आप इस सीमा को भी पार कर सकते हैं।

"क्या होगा यदि मेरे पास Oct/V सिंथेस है?"

कोई दिक्कत नहीं है! मैंने जो कोड लिखा है वह अक्टूबर/वी सिंथेसाइज़र के साथ संगत है (अनचाहे, लेकिन मुझे विश्वास है कि यह आउट-ऑफ-द-बॉक्स काम करेगा;))।

चरण 1: !! सावधानी के नोट - अस्वीकरण

आपका उपकरण बहुत मूल्यवान है और इसका उपयोग परीक्षण करने के लिए नहीं किया जाना चाहिए।

बिजली के साथ खिलवाड़ करने से आपके उपकरण गंभीर रूप से क्षतिग्रस्त हो सकते हैं या खुद को नुकसान पहुंचा सकते हैं।

मुझे आपके उपकरण / हार्डवेयर या यहां तक कि खुद को किसी भी सॉफ़्टवेयर या योजनाओं या सूचनाओं या लिंक से आने वाले नुकसान के लिए जिम्मेदार नहीं ठहराया जा सकता है, जो मैंने इस निर्देश में रिपोर्ट किया है।

आपको चेतावनी दी गई है!

चरण 2: हार्डवेयर इंजीनियरिंग

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

- पिच, एक पीडब्लूएम आउटपुट को एनालॉग वोल्टेज में परिवर्तित करके वीसीओ को डिजिटल से एनालॉग कनवर्टर (डीएसी) के माध्यम से चलाने के लिए

- वेग, एक साधारण RC फ़िल्टर के साथ VCA को चलाने के लिए pwm आउटपुट को फ़िल्टर करके

- एक साधारण RC फ़िल्टर के साथ VCF को चलाने के लिए pwm आउटपुट को फ़िल्टर करके, कटऑफ फ़्रिक्वेंसी को फ़िल्टर करें

- गेट, वी-ट्रिग के मामले में सीधे डिजिटल आउट से (वर्तमान नाली को कम करने के लिए आउटपुट के साथ श्रृंखला में 1Kohm डालें) या डिजिटल आउट से एक साधारण पीएनपी ट्रांजिस्टर स्विच द्वारा (स्कीमैटिक्स चरण से जुड़ी योजनाबद्ध देखें).

Arduino सीधे स्थिर वोल्टेज को आउटपुट करने में सक्षम नहीं है, लेकिन विभिन्न अवधियों (PWM) के साथ 0/+5 V दालें। हमें पोरहाउस के लिए डिजिटल से एनालॉग कन्वर्टर्स (डीएसी) की जरूरत है। आरसी फिल्टर सबसे आसान डीएसी हैं जिनके बारे में मैं सोच सकता हूं। वोल्टेज नियंत्रित एम्पलीफायर और फिल्टर (वीसीए और वीसीएफ) के लिए एक आरसी फिल्टर काफी अच्छा है। आरसी फिल्टर एक कटऑफ आवृत्ति <20 हर्ट्ज (सबसे कम श्रव्य आवृत्ति) में परिणाम के अनुरूप हैं।

मैंने कम क्षमता वाले गैर ध्रुवीकृत कैपेसिटर के साथ कुछ परीक्षण किए और मैं सबसे अच्छा फिट होने के लिए 0.1uF के क्षमता मूल्य के साथ समाप्त हुआ। MS20 MKII पर अच्छा परीक्षण किया गया।

दुर्भाग्य से, हम वोल्टेज नियंत्रित थरथरानवाला (VCO) को चलाने के लिए RC फ़िल्टर पर भरोसा नहीं कर सकते क्योंकि यह सटीक पर्याप्त नहीं होगा (Hz/V स्केल में, निचले सिरे पर दो एडिएसेंड सेमीटोन 0.02V से कम के लिए भिन्न होते हैं; V में /अक्टूबर दो एडिएसेंट सेमीटोन 0.083 वी के लिए भिन्न होते हैं); हम इसके लिए एक IC DAC (MPC4725) का उपयोग करने जा रहे हैं।

ज्ञात सीमाएं

ड्राइव वोल्टेज को 5V (Arduino आउटपुट वोल्टेज) तक सीमित करते हुए, पूर्ण 0 से 5V रेंज वेग के लिए कवर की जाती है; कटऑफ आधा ढका हुआ है (-5V से +5V); वीसीओ रेंज को आंशिक रूप से कवर किया गया है कि हर्ट्ज/वी में 440 हर्ट्ज ए 4 तक पहुंचने के लिए 8 वी के वोल्टेज की आवश्यकता होगी। 5V आउटपुट सीमा के साथ हम थरथरानवाला को Hz/V में D4 आवृत्ति तक पिच कर सकते हैं।

चरण 3: घटक सूची

अवयव सूची
अवयव सूची
अवयव सूची
अवयव सूची
अवयव सूची
अवयव सूची

आपको इसकी आवश्यकता है:

1X Arduino UNO (या नैनो)

1X MPC4725 DAC बोर्ड

4X 1/8 "या 1/4" मोनो कनेक्टर

1X मिडी कनेक्टर

1X 6N138 ऑप्टोकॉप्लर

1X 1N4148 डायोड

1X 220 ओम 1/4 W रोकनेवाला

1X 470 ओम 1/4 W रोकनेवाला

1X 10K ओम 1/4 W रोकनेवाला

4X 1K ओम 1/4 W रोकनेवाला

2X 0.1 यूएफ संधारित्र

1X BC547 pnp ट्रांजिस्टर (एस-ट्रिग के मामले में)

1X ABS बॉक्स (कम से कम 55 x 70 x 100 मिमी)

… और स्पष्ट रूप से ब्रेडबोर्ड या परफ़बोर्ड, सोल्डर आयरन, सोल्डर वायर और केबल (28 AWG के 2 मीटर पर्याप्त होने चाहिए)।

ध्यान दें कि मेरे प्रोटोटाइप के ऊपर की तस्वीरों में 100 uF इलेक्ट्रोलिटिक कैप लगाए गए हैं, लेकिन क्षमता चार्ज समय के कारण वे बहुत धीमे हैं। 0.1uF का समाई सही विकल्प है।

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

चरण 4: कनेक्शन/योजनाएं

कनेक्शन/योजनाएं
कनेक्शन/योजनाएं
कनेक्शन/योजनाएं
कनेक्शन/योजनाएं
कनेक्शन/योजनाएं
कनेक्शन/योजनाएं

मिडी इन

MIDI IN सर्किट नेट पर सरल और अच्छी तरह से वर्णित है। उदाहरण के लिए, अमांडा गसैई द्वारा MIDI और Arduino पर इस उत्कृष्ट निर्देश को लें। मैंने वैसे भी मामले पर nth योजनाबद्ध बनाया।

ध्यान दें कि मैंने MIDI IN स्कीम (स्विच 1) में एक स्विच जोड़ा है: Arduino पर एक नया स्केच अपलोड करते समय यह आवश्यक है क्योंकि ऑप्टो आने वाले मिडी संदेशों के बिना भी RX लाइन के साथ हस्तक्षेप करता है। अपना स्केच अपलोड करने से पहले आपको स्विच खोलना होगा या आईडीई नया स्केच अपलोड करने में विफल हो जाएगा।

सीरियल सॉफ्टवेयर संचार का उपयोग करने के लिए आप अंततः स्केच को संशोधित कर सकते हैं।

डीएसी, आरसी फ़िल्टर, सिंथेसाइज़र

डीएसी, आरसी फिल्टर और सिंथ (पिच, गेट और वेग) के लिए कनेक्शन शीर्ष पर आरेख में दिखाया गया है। मैंने एक कॉर्ग MS20 पैच पैनल के संदर्भ में लिया, लेकिन मैंने MS10 पर भी सब कुछ का परीक्षण किया। वीसीए "प्रारंभिक लाभ" पैच बिंदु के लिए वेग सीवी का सीधा संबंध कोई प्रभाव नहीं है (मुझे इस बात को और अधिक खोदना चाहिए) लेकिन यदि आप इसे "कुल" पैच बिंदु से जोड़ते हैं और अपने कुल बाहरी बर्तन (एमजी/टी.ईएक्सटी) को बढ़ाते हैं), आप नोट वेग के एक समारोह के रूप में अच्छी स्वर विविधताएं सुनेंगे।

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

ध्यान दें कि 100 uF से ऊपर की योजनाओं में इलेक्ट्रोलाइटिक कैप की सूचना दी गई है, लेकिन क्षमता चार्ज समय के कारण वे बहुत धीमी हैं। गैर ध्रुवीकृत, 0.1uF कैप सही विकल्प हैं।

बाहर गेट है

यदि आप वी-ट्रिग (वोल्टेज ट्रिगर) संकेतों के साथ संगत सिंथेस को अनुक्रमित करने जा रहे हैं, तो वर्तमान नाली को कम करने के लिए 1k ओम श्रृंखला रोकनेवाला पर्याप्त होगा; एस-ट्रिग (स्विच ट्रिगर) सिंथेस के मामले में, आप एक साधारण पीएनपी स्विच सर्किट (संलग्न योजना देखें) का उपयोग कर सकते हैं।

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

सॉफ्टवेयर
सॉफ्टवेयर

मैंने स्केच को यथासंभव स्पष्ट और "पठनीय" रखने की कोशिश की।

मैंने एक साधारण कैल्क शीट पर काम किया जो मुझे यहां मिली एक वोल्टेज बनाम नोट # वक्र प्राप्त करने के लिए और माइक्रोकंट्रोलर में सीधे समीकरण का उपयोग करने के लिए। समीकरण शीर्ष पर ग्राफ में दिखाया गया है। मैंने Arp/Korg अनुरूप वोल्टेज बनाम नोट संबंध (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V और इसी तरह) प्राप्त करने के लिए संदर्भ नोट के रूप में C2 का उपयोग किया।

मुझे एक अच्छी ट्यूनिंग प्राप्त करने के लिए कुछ चर को खिलौने के साथ परिभाषित करना पड़ा … सही मूल्यों को खोजने के लिए अपना समय लें। एक ट्यूनर आवश्यक है।

हम आउटपुट वोल्टेज रिपल (कोड की एक पंक्ति के रूप में आसान) को कम करने के लिए टाइमर/काउंटर की पीडब्लूएम आवृत्ति बढ़ाने जा रहे हैं।

आने वाले बाइट्स के लिए कोड को उत्तरदायी रखने के लिए, कोड फ़ंक्शन कॉलबैक पर बहुत अधिक निर्भर करता है।

आपको स्पार्कफुन के "Adafruit_MCP4725.h" और चालीस सेवन इफेक्ट्स/फ्रैंकोइस बेस्ट के "MIDI.h" पुस्तकालयों को संकलित करने की आवश्यकता है! (इन व्यक्तियों को बहुत-बहुत धन्यवाद: उनके प्रयासों के बिना यह परियोजना कभी साकार नहीं होगी!)

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

मैं वास्तविक जीवन में कोडर नहीं हूं, इसलिए इस बात की पूरी संभावना है कि स्केच को बेहतर तरीके से लिखा जा सकता है। मैं सुझावों के लिए खुला हूं (मैं हमेशा कोडर के कोड को देखकर कुछ सीखता हूं;))

अतिरिक्त नोट्स नीचे दिए गए कोड में लिखे गए हैं। दो पुस्तकालय स्थापित करें, अपने आईडीई पर संलग्न कोड खोलें, अपना बोर्ड कनेक्ट करें, बोर्ड के प्रकार का चयन करें और अपलोड करें।

चरण 6: समस्या निवारण

यहां तक कि अगर परियोजना निम्न स्तर की है, तो बहुत सी चीजें हैं जो गलत हो सकती हैं। यदि आप अपना स्वयं का MIDI से CV बॉक्स बनाने का प्रयास करते समय समस्याओं का सामना कर रहे हैं, तो इन चरणों का पालन करें:

1. सुनिश्चित करें कि Arduino MIDI संदेशों को सही ढंग से प्राप्त कर रहा है

आउटपुट चैनल की जाँच करें कि आपका कीबोर्ड या DAW या Sequencer MIDI संदेशों को आउटपुट कर रहा है। Arduino डिफ़ॉल्ट रूप से चैनल 1 को सुन रहा है। आने वाले संदेश को पढ़ने के लिए "TEST_MIDI_IN.ino" अपलोड करें।

2. अपने तारों की दोबारा जांच करें

… या इससे भी बेहतर: उन्हें तीन बार जांचें! इसके लिए अपना समय रखें।

3. डीएसी पता और आउटपुट जांचें

DAC को मेरे द्वारा स्केच में सेट किए गए पते से भिन्न पते पर डेटा प्राप्त करने के लिए सेट किया जा सकता है। "I2C_scanner.ino" चलाकर पता जांचें। यदि कोई "कोई उपकरण नहीं मिला" त्रुटि होती है, तो अपने DAC वायरिंग की जाँच करें (SDA और SCL इनपुट अलग-अलग Arduino बोर्डों पर भिन्न हैं!) यदि आपके पास एक आस्टसीलकोप है (यहां तक कि वे 15 यूरो के डिजिटल ऑसिलोस्कोप भी काफी अच्छे हैं … और खिलौनों के साथ मज़ेदार हैं!) तो आप डीएसी लाइब्रेरी इंस्टॉलेशन के साथ शामिल ट्राएंगलवेव जनरेटर उदाहरण अपलोड करके अपने डीएसी के आउटपुट की जांच कर सकते हैं।

याद रखें कि जब एक ऑप्टोकॉप्लर आपके arduino बोर्ड के RX इनपुट से जुड़ा होता है, तो आप एक नया स्केच अपलोड नहीं कर पाएंगे !! RX पिन से पहले एक स्विच (यह एक साधारण जम्पर हो सकता है) रखें।

इनमें से अधिकांश परीक्षण रेखाचित्र मेरे नहीं हैं या कम से कम मौजूदा ऑनलाइन सामग्री पर आधारित हैं।

यह बात मुझे बेतुकी लगती है !?

यह एक वास्तविक मुद्दा नहीं है: Hz/V नियंत्रण के लिए व्युत्पन्न समीकरण "आदर्श" है। आदर्श व्यवहार से कुछ बहाव +5V से बढ़ सकता है जिसे आप 5.000V नहीं, DAC से और उपकरण से ही आपूर्ति कर रहे हैं। हल करने के लिए आपको अपने सिंथ ट्यून/फाइन ट्यून पोटेंशियोमीटर और "वॉयला" पर पूरी तरह से ट्यून किए गए मिडी नियंत्रण पर कार्य करना होगा;)

चरण 7: उपयोगी कड़ियाँ

en.wikipedia.org/wiki/CV/gate

www.instructables.com/id/Send-and-Receive-…

www.songstuff.com/recording/article/midi_me…

pages.mtu.edu/~suits/NoteFreqCalcs.html

espace-lab.org/activites/projets/en-arduin…

learn.sparkfun.com/tutorials/midi-shield-h…

provideyourown.com/2011/analogwrite-conver…

www.midi.org/specifications/item/table-3-c…

arduino-info.wikispaces.com/Arduino-PWM-Fr…

sim.okawa-denshi.jp/hi/PWMtool.php

सिफारिश की: