मिडी कैसे बोलें
मैंने मूल रूप से यह लेख मई 2019 में लिखा था, लेकिन अपनी पुरानी वेबसाइट को नापसंद करने के बाद इसे यहां स्थानांतरित कर दिया। आनंद लेना!
अंतर्वस्तु
- मिडी क्या है
1.1 मिडी क्या नहीं है - यह कैसे काम करता है
2.1 संदेशों को अलग करना
2.2 स्थिति बाइट्स और डेटा बाइट्स - संदेश प्रकार
3.1 नोट ऑफ / नोट ऑन (0x8n, 0x9n)
→ 3.1.1 मिडी पिच नंबरों के बारे में
3.2 कंट्रोल चेंज (0xBn)
3.3 पिच बेंड (0xEn)
3.4 पॉलीफोनिक की प्रेशर और चैनल प्रेशर (0xAn, 0xDn)
3.5 प्रोग्राम चेंज (0xCn) )
3.6 सिस्टम (0xFn) - हेक्साडेसिमल के बारे में
- अनुप्रयुक्त उदाहरण: बीथोवेन की पांचवीं सिम्फनी
- बोनस पाठ: रनिंग स्थिति
परिशिष्ट I: चैनल मोड संदेश
परिशिष्ट II: मिडी पिच चार्ट
परिशिष्ट III: मानक सीसी असाइनमेंट
परिशिष्ट IV: बैंक परिवर्तन संदेश
परिशिष्ट V: अतिरिक्त संसाधन
मिडी प्राचीन है, लेकिन हेला उपयोगी है। यह आपके द्वारा गिटार सेंटर में देखे जाने वाले कीबोर्ड को चलाता है, संगीत कार्यक्रम¹ में प्रकाश और आतिशबाज़ी बनाने जैसी चीज़ों को नियंत्रित करता है, और पिछले कुछ दशकों में लगभग हर फिल्म को स्कोर करने के लिए इसका उपयोग किया गया है।
यदि आप एक आधुनिक संगीतकार हैं, तो MIDI का कार्यसाधक ज्ञान आवश्यक है। यदि आप उस तरह के व्यक्ति हैं जो इस तरह के ब्लॉग पोस्ट पढ़ते हैं, तो अच्छा है कि आपके पास पहले से ही इसके साथ काम करने का कुछ अनुभव है; हालाँकि, मुझे लगता है कि यह न केवल यह जानने में मददगार है कि इसका उपयोग कैसे करना है, बल्कि इसे थोड़ा-थोड़ा करके कैसे पढ़ना है। अपने स्वयं के MIDI संदेशों का अनुवाद और संयोजन करना पहली बार में कठिन लग सकता है, लेकिन यह वास्तव में आसान है, और मुझे लगता है कि यह किसी भी आधुनिक संगीतकार के लिए एक महत्वपूर्ण कौशल है। यह जानने के समान है कि रिकॉर्डिंग इंजीनियर के रूप में माइक्रोफोन कैसे काम करते हैं।
यह लेख मिडी संदेशों के व्यापक परिचय और गाइड के रूप में काम करेगा क्योंकि वे संगीत उत्पादन पर लागू होते हैं। यह गाइड मिडी संरचना पर एक ट्यूटोरियल नहीं है, या अपने डीएडब्ल्यू में मिडी संपादक का उपयोग कैसे करें। हालाँकि, यह मार्गदर्शिका पूरी तरह से संगीतकारों के लिए तैयार है, क्योंकि आप पाएंगे कि MIDI का एक मौलिक ज्ञान आपके अधिक उन्नत (और जटिल) MIDI टूल का पता लगाने में बहुत मदद करेगा। आएँ शुरू करें।
1. मिडी क्या है
मुझे शुरू से ही चीजें पढ़ाना पसंद है। हालाँकि, यदि आप पहले से ही स्पष्ट हैं कि MIDI क्या है और यह क्या करता है, तो यह कैसे काम करता है पर जाने के लिए स्वतंत्र महसूस करें , जहाँ हम सीधे नट और बोल्ट पर गोता लगाएँगे। अन्यथा, आइए समीक्षा करें।
मिडी एक संक्षिप्त शब्द है जो "म्यूजिकल इंस्ट्रूमेंट डिजिटल इंटरफेस" के लिए है। अनिवार्य रूप से, यह कंप्यूटर के लिए एक दूसरे के संगीत प्रदर्शन का वर्णन करने और प्रसारित करने का एक तरीका है। दरअसल, यह तरीका है । यदि आप 80 के दशक के बाद पैदा हुए थे, तो शायद आपने कभी देखा है कि हर कीबोर्ड या ड्रम मशीन MIDI का उपयोग करती है। जबकि पिछले वर्षों में MIDI को ओवरहाल या बदलने के लिए कई प्रयास किए गए हैं, उपकरण निर्माता और डेवलपर्स वास्तव में किसी और चीज का उपयोग करने के बारे में परवाह नहीं करते हैं।
मिडी के साथ, आप कर सकते हैं:
- संगीत प्रदर्शन रिकॉर्ड करें और उन्हें सर्जिकल सटीकता के साथ संपादित करें
- किसी भी उपकरण के प्रदर्शन को "पैच" करें जिसमें बहुत कम या कोई काम नहीं है
- प्रक्रियात्मक रूप से उत्पन्न या परिणाम प्रदर्शन
- एकल कनेक्शन के साथ कलाकारों की टुकड़ी के प्रदर्शन की व्यवस्था करें
- अल्पविकसित मिश्रण करें, "स्वचालन" के साथ पूरा करें
और ऐसा तब होता है जब स्कोर का प्रदर्शन भी हो जाता है । जबकि 80 के दशक के आभासी आर्केस्ट्रा हास्यास्पद रूप से नकली लगते थे, आधुनिक वाद्ययंत्र इतने अच्छे लगते हैं कि आकस्मिक श्रोता अंतर भी नहीं बता सकते। और वह सब कुछ बदल गया है। कम बजट की फिल्मों और टीवी शो में, साउंडट्रैक अक्सर अंतिम संस्करण में मिडी ऑर्केस्ट्रा का उपयोग करेगा, और दर्शक कोई समझदार नहीं हैं। और आश्चर्यजनक रूप से, ऐसे उपकरण संगीतकारों के लिए लगभग हर आय स्तर पर उपलब्ध हैं।
1.1 मिडी क्या नहीं है
जारी रखने से पहले, मैं कुछ गलतफहमियों को दूर करना चाहता हूं जो कभी-कभी नए लोगों को होती हैं। इसमें ज्यादा समय नहीं लगेगा।
सबसे पहले, मिडी संगीत नहीं बनाता है: यह सिर्फ अन्य उपकरणों को बताता है कि संगीत कैसे बनाना है। लेकिन यह अन्य सामान भी कर सकता है। उदाहरण के लिए, पेशेवर वीडियो सॉफ़्टवेयर में, MIDI संदेशों का उपयोग एनिमेशन पैरामीटर जैसी चीज़ों को नियंत्रित करने के लिए किया जाता है। कई स्टूडियो नियंत्रण सतहें मिक्सिंग सॉफ़्टवेयर को नियंत्रित करने के लिए MIDI का उपयोग करती हैं, और यह फैंसी-ऐस प्लेयर पियानो इसका उपयोग रोबोटिक एक्ट्यूएटर्स को ट्रिगर करने के लिए करता है। मैं जिस बिंदु को बनाने की कोशिश कर रहा हूं वह यह है कि मिडी डेटा मुख्य रूप से आभासी उपकरणों को नियंत्रित करने के लिए उपयोग किया जाता है, यह वास्तव में किसी भी चीज़ के लिए इस्तेमाल किया जा सकता है, और अपने आप में कुछ भी "ध्वनि" नहीं करता है।
दूसरा, मिडी डेटा केवल "कंप्यूटर के लिए शीट संगीत" नहीं है, हालांकि सादृश्य उपयोगी हो सकता है। जबकि पश्चिमी शीट संगीत वह माध्यम है जिसने इतिहास के सभी सबसे अभिव्यंजक संगीत को कूटबद्ध किया है, सच्चाई यह है कि यह व्याख्या के लिए काफी जगह छोड़ता है - और कंप्यूटर अस्पष्टता को बहुत अच्छी तरह से नहीं संभालते हैं।
इसके बजाय, MIDI शायद एक प्रोग्रामिंग भाषा के रूप में और आपके MIDI संपादक को एक दृश्य प्रोग्रामिंग वातावरण के रूप में सबसे अच्छा माना जाता है। MIDI संपादक MIDI कमांड को पियानो रोल पर आकृतियों के रूप में प्रस्तुत करते हैं, बजाय इसके कि वे वास्तव में क्या हैं: महिमामय डिजिटल निर्देश। और सभी प्रोग्रामिंग भाषाओं की तरह, मिडी सभी प्रकार की बग और ग्लिच के अधीन है। उदाहरण के लिए, यदि "नोट ऑन" संदेश "नोट ऑफ" के साथ ठीक से जोड़ा नहीं गया है, तो नोट हमेशा के लिए चलता रहता है, क्योंकि कंप्यूटर में रोकने के लिए सामान्य ज्ञान की कमी होती है।
वैसे भी, मैं इस परिचय को लिखते-लिखते थक गया हूँ। आइए अमूर्तता की उन सभी परतों को वापस छीलें, और सीखें, मौलिक स्तर पर, मिडी कैसे बोलें।
2. यह कैसे काम करता है
कंप्यूटर में लगभग सब कुछ की तरह, मिडी लोगों और शून्य के एक समूह के लिए उबलता है। प्रत्येक अंक को एक बिट ("बाइनरी अंक" के लिए छोटा) कहा जाता है और उनमें से आठ एक बाइट बनाते हैं । जब आप एक डिजिटल पियानो बजाते हैं, तो MIDI संदेश आंतरिक रूप से उत्पन्न होते हैं और उपकरण के टोन जनरेटर को भेजे जाते हैं, जहां उनकी व्याख्या की जाती है और उन्हें श्रव्य ध्वनि में परिवर्तित किया जाता है। यदि आपने सिग्नल पर एक नज़र डाली, तो उत्पन्न संदेश कुछ इस तरह दिखाई दे सकते हैं:
यह एक साधारण मिडी प्रदर्शन का द्विआधारी रूप है: बीथोवेन के पांचवें के पहले चार नोट। यदि आप इस अनुक्रम को रिकॉर्ड करते हैं और इसे किसी अन्य मिडी उपकरण में ठीक उसी तरह दोहराते हैं जैसे इसे वितरित किया गया था, तो परिणाम प्रदर्शन की एक समान प्रति होगी। यदि आप समय के साथ खिलवाड़ करते हैं, तो आप प्रदर्शन की गति बदल देंगे। प्रदर्शन के बारे में बाकी सब कुछ डेटा में ही एन्कोड किया गया है।
यह महसूस करना दिलचस्प है कि आजकल संगीतकार मूल रूप से अपना समय क्राफ्टिंग, संपादन और ट्वीकिंग में बिताते हैं जो संख्याओं के समय पर वितरण के लिए उबलता है। वैसे भी, आइए इस गड़बड़ी की व्याख्या करने के कार्य को एक समय में एक चरण में विभाजित करें।
2.1 संदेशों को अलग करना
मिडी संदेशों के बारे में जानने वाली पहली बात यह है कि वे लगभग हमेशा एक बाइट से अधिक होते हैं। यह समझ में आता है यदि आप मानते हैं कि केवल 256 अद्वितीय 8-बिट संख्याएँ हैं, और हमें संभवतः किसी संगीत कार्यक्रम के रूप में अभिव्यंजक के रूप में वर्णन करने के लिए उससे कहीं अधिक जानकारी को एन्कोड करने की आवश्यकता है।
इसलिए, यदि आप कई छोटे पैकेजों में एक संदेश प्राप्त कर रहे हैं, संभवतः सभी एक साथ, तो आप कैसे जानते हैं कि एक संदेश कहाँ समाप्त होता है और अगला शुरू होता है? वास्तविक रूप से, यदि आप जानते हैं कि प्रति संदेश कितने बाइट्स की उम्मीद है और आप शीर्ष पर शुरू करते हैं, तो आपको उन्हें अलग-अलग बताने में सक्षम होना चाहिए, जब तक कि उनमें से कोई भी ट्रांसमिशन में खो न जाए। हालांकि, मिडी हमें प्रत्येक संदेश को पार्स करने का एक निश्चित तरीका प्रदान करता है: प्रत्येक बाइट के पहले बिट को कारण के लिए समर्पित करके।
नियम 1: यदि मिडी बाइट का पहला बिट 1 है , तो बाइट एक स्थिति बाइट है , जो मिडी संदेश के पहले भाग को चिन्हित करता है। यदि पहला बिट 0 है , तो यह एक डेटा बाइट है , जो संदेश का मुख्य भाग है।
आसान। हर बार एक बाइट 1 के साथ आगे बढ़ता है, हम जानते हैं कि हम एक नए संदेश की शुरुआत पढ़ रहे हैं, और हम पहले के साथ मिलकर निम्नलिखित बाइट्स की व्याख्या कर सकते हैं। उपरोक्त MIDI प्रदर्शन को असतत संदेशों में विभाजित करने के लिए उस नियम का उपयोग करते हैं।
अब जब हम कुछ और अधिक सुव्यवस्थित देख रहे हैं, तो आप देख सकते हैं कि कुछ पैटर्न सामने आ रहे हैं। एक बात के लिए, प्रत्येक बाइट के केवल दो अद्वितीय संस्करण हैं। यह जानते हुए कि ये संदेश बीथोवेन की पांचवीं सिम्फनी के पहले चार नोटों का प्रतिनिधित्व करते हैं, क्या आप अनुमान लगा सकते हैं कि उनका क्या मतलब है?
2.2 स्थिति बाइट्स और डेटा बाइट्स
मिडी संदेश का स्टेटस बाइट इसके शीर्षलेख के रूप में कार्य करता है, और यह सबसे महत्वपूर्ण हिस्सा है। यह हमें बताता है कि संदेश क्या करता है, और निम्न डेटा बाइट्स की व्याख्या कैसे करें। डेटा बाइट एनकोड क्या संदेश पर निर्भर करता है, लेकिन वे आम तौर पर संदेश को पूरा करने के लिए महत्वपूर्ण जानकारी प्रदान करेंगे। यदि स्थिति बाइट कहती है, "कूदो," तो डेटा बाइट आपको बता सकता है कि कितना ऊंचा है।
क्योंकि प्रत्येक बाइट का पहला बिट दो बाइट प्रकारों को अलग-अलग बताने के लिए आरक्षित है, दोनों में से केवल सात बिट ही प्रयोग करने योग्य हैं। यहां बताया गया है कि उनका उपयोग कैसे किया जाता है:
नियम 2: स्थिति बाइट के 2, 3 और 4 बिट उसके संदेश प्रकार की पहचान करते हैं । बिट्स 5-8 उस मिडी चैनल की पहचान करता है जिसे वह संबोधित कर रहा है। संदेश प्रकार के आधार पर डेटा बाइट अलग-अलग कार्य करता है।
संदेश प्रकार निर्धारित करने के लिए तीन बिट्स और चैनल नंबर के लिए चार का मतलब है कि आठ अलग-अलग संदेश प्रकार और 16 संभावित चैनल हैं। डेटा बाइट्स में 0 से 127 तक कोई भी मान हो सकता है । जबकि अधिकांश संदेश दो डेटा बाइट का उपयोग करते हैं, वह संख्या वास्तव में संदेश की आवश्यकताओं के आधार पर भिन्न हो सकती है। उदाहरण के लिए, "प्रोग्राम चेंज" संदेशों को केवल एक डेटा बाइट की आवश्यकता होती है, और "सिस्टम एक्सक्लूसिव" संदेशों में मनमानी संख्या हो सकती है।
यदि आपने पहले MIDI के साथ काम किया है, तो आप शायद पहले से ही MIDI चैनलों से परिचित हैं। लेकिन यदि आप नहीं हैं, तो प्रत्येक मिडी कनेक्शन 16 आवाजों तक का आदेश दे सकता है। स्टेटस बाइट अपने चार सबसे कम महत्वपूर्ण बिट्स में निर्दिष्ट करता है कि इनमें से कौन सा चैनल संदेश को संबोधित कर रहा है।³
3. संदेश प्रकार
निम्न तालिका विभिन्न MIDI संदेश प्रकारों की पहचान करती है, और वे डेटा बाइट्स का उपयोग कैसे करते हैं। हम निम्नलिखित उपखंडों में प्रत्येक का अन्वेषण करेंगे।
3.1 नोट बंद / नोट चालू (0x8n, 0x9n)
ये मिडी संदेशों में सबसे प्राथमिक हैं और समझने में सबसे आसान हैं। जब आप कोई नोट चलाना चाहते हैं, तो "नोट ऑन" संदेश भेजें, और जब आप इसे समाप्त करना चाहें, तो "नोट ऑफ़" संदेश भेजें। ये संदेश दो डेटा बाइट्स का उपयोग करते हैं: पहला यह पहचानता है कि आप किस पिच को नियंत्रित करना चाहते हैं, और दूसरा एक वेग की पहचान करता है। ⁴ 0 के वेग के साथ "नोट ऑन" कोई ध्वनि उत्पन्न नहीं करता है, और यह "नोट ऑफ" संदेश के बराबर है।
विचार:
- शून्य-वेग "नोट ऑन" संदेशों के अस्तित्व का अर्थ है कि "नोट ऑफ" संदेश पूरी तरह से अनावश्यक हैं। मिडी मानक विशेष रूप से बताता है कि "नोट ऑफ" और शून्य वेग "नोट ऑन" संदेश समतुल्य हैं और उन्हें समान रूप से व्यवहार किया जाना चाहिए। नतीजतन, एक डिवाइस दूसरे की तुलना में अलग-अलग नोटों को अनट्रिगर कर सकता है।
- जबकि ट्रांसमीटरों को केवल अनट्रिगरिंग नोट्स की एक विधि का उपयोग करने की आवश्यकता होती है, रिसीवर को दोनों को संभालने में सक्षम होना चाहिए।
- जबकि एक वेग मान "नोट ऑफ" संदेश में ज्यादा मायने नहीं रखता है, यह अभी भी संदेश का हिस्सा है और इसे भेजा जाना चाहिए। मूल्य अप्रयुक्त है और खारिज कर दिया गया है।
पिच नंबरों को अनिवार्य रूप से एक-से-एक पियानो कुंजियों पर मैप किया जाता है। हालांकि, चूंकि 128 संभावित मान हैं और केवल 88 पियानो कुंजियां हैं, मिडी वास्तव में पियानो पर नहीं पाए जाने वाले 40 सेमिटोन का समर्थन करता है। उनमें से 19 उच्चतम नोट, C7 के ऊपर स्थित हैं, और अन्य 21 निम्नतम नोट, A-1 से नीचे हैं। मिडी पिच रेंज लगभग मध्य सी के बारे में केंद्रित है, जो नोट संख्या 60 है।
विदित हो कि निर्माता सभी ऑक्टेव नंबरों पर सहमत नहीं हैं। एनालॉग संगीतकारों द्वारा उपयोग किए जाने वाले वैज्ञानिक पिच नोटेशन, पियानो पर सी 1 के रूप में निम्नतम सी की पहचान करते हैं , जो मध्य सी सी 4 बनाता है । दूसरी ओर, प्रोग्रामर, अक्सर 0 से गिनना शुरू करते हैं, इसलिए उनके लिए सबसे कम C है C0 और बीच का C है C3 । यह वह संकेतन है जिसका मैं आमतौर पर उपयोग करता हूं, क्योंकि यह वही है जो मेरे सभी MIDI उपकरण उपयोग करते हैं। हालाँकि, कोई फर्क नहीं पड़ता कि आप किस प्रणाली का उपयोग करते हैं, मध्य C हमेशा 60 नंबर का नोट होता है।
परिशिष्ट II में , मैं MIDI पिच संख्या में और से कनवर्ट करने के लिए एक चार्ट प्रदान करता हूं।
3.2 नियंत्रण परिवर्तन (0xBn)
चैनल के निरंतर नियंत्रकों को संशोधित करने के लिए "नियंत्रण परिवर्तन" संदेशों का उपयोग किया जाता है । एक सतत नियंत्रक एक ऑटोमेशन लेन के अनुरूप है; यह चैनल के प्रदर्शन के विभिन्न पहलुओं पर निरंतर नियंत्रण की अनुमति देता है।
पहला डेटा बाइट सीसी संख्या (0–119) की पहचान करता है , और दूसरा इसे एक मान (0–127) निर्दिष्ट करता है ।
विचार:
- नाम के विपरीत, निरंतर नियंत्रक डेटा निरंतर नहीं होता है। स्वचालन के तरीके से मूल्यों के बीच सुचारू रूप से प्रक्षेपित करने के बजाय, एक सीसी लेन का वर्तमान मूल्य केवल असतत चरणों में बदल सकता है। किसी अन्य मूल्य पर सुचारू रूप से रैंप करने के लिए, आपको बड़ी संख्या में "नियंत्रण परिवर्तन" संदेश भेजने चाहिए, नियंत्रित दर पर मूल्य बढ़ाना या घटाना।
- मिडी विनिर्देश परिभाषित करता है कि 120 सीसी में से अधिकांश का उपयोग किसके लिए किया जाना है, हालांकि बहुत कम डिवाइस मुट्ठी भर से अधिक का निरीक्षण करते हैं। मैं परिशिष्ट III में सभी सीसी की तालिका प्रदान करता हूं ।
- अंतिम आठ सीसी संख्याएं (120-127) वास्तव में सीसी का बिल्कुल भी प्रतिनिधित्व नहीं करती हैं। इसके बजाय, वे संदेश की एक विशेष श्रेणी का प्रतिनिधित्व करते हैं जिसे चैनल मोड संदेश कहा जाता है। चैनल मोड संदेश विशेष कमांड होते हैं जो इसे प्राप्त करने वाले संपूर्ण डिवाइस को प्रभावित करते हैं। व्यवहार में, आपको उनके बारे में बहुत अधिक चिंता करने की आवश्यकता नहीं होगी, लेकिन मैं परिशिष्ट I में उनके बारे में अधिक जानकारी प्रदान करता हूँ ।
- पैच चयन उद्देश्यों के लिए बहुत सारे उपकरणों द्वारा सीसी संख्या 0 और 32 का उपयोग किया जाता है। परिशिष्ट IV में इसके बारे में और पढ़ें ।
पिच को ऊपर या नीचे झुकाता है। दुह।
पिच बेंड एक सीसी की तरह व्यवहार करता है। वास्तव में, अधिकांश मिडी संपादक पिच बेंड का इलाज करते हैं जैसे यह सिर्फ एक और सीसी है। हालांकि, 128 संभावित मानों के साथ 7-बिट सीसी मान, पिच बेंड प्रभाव को बेचने के लिए पर्याप्त रिज़ॉल्यूशन प्रदान नहीं करता है। पिच की ऊंचाई को हल करने में हमारे कान अद्भुत हैं, और इसलिए जब हम एक समय में 1/128वें रास्ते पर एक नई पिच तक पहुंचते हैं, तो यह चिकनी और जैविक ध्वनि नहीं होती है।
एक महीन रिज़ॉल्यूशन प्राप्त करने के लिए, "पिच बेंड" संदेश एक बड़े मान को प्रसारित करने के लिए दो डेटा बाइट्स का उपयोग करते हैं। मूल रूप से, यदि आप एक संदेश के सात बिट्स और दूसरे के सात बिट्स को एक साथ स्क्विश करते हैं, तो आप एक 14-बिट मान को इकट्ठा कर सकते हैं, जिससे आपका रिज़ॉल्यूशन 2⁷, या 128 के कारक से बढ़ जाता है।
अब, हमारे पिच बेंड के लिए 128 संभावित मूल्यों के बजाय, हमारे पास 16,384 का एक बड़ा हिस्सा है - एक चिकनी पिच बेंड प्रभाव बनाने के लिए पर्याप्त चरणों से अधिक। दायां आधा पहले डेटा बाइट (कम से कम महत्वपूर्ण बाइट, या एलएसबी) द्वारा प्रदान किया जाता है और बायां आधा दूसरा (सबसे महत्वपूर्ण बाइट, या एमएसबी) द्वारा प्रदान किया जाता है।
विचार:
- पिच बेंड की ताकत (अधिकतम आउट पिच बेंड कितने सेमिटोन ऊपर या नीचे दर्शाती है) एक उपकरण से दूसरे उपकरण में भिन्न होती है। यह अक्सर विन्यास योग्य होता है।
- पिच बेंड 8192 पर "केंद्रित" है (जहां कोई पिच परिवर्तन नहीं है)।
- पिच बेंड सीसी की तरह ही चैनल पर चलने वाले सभी नोटों को प्रभावित करते हैं।
- MSB's और LSB's के साथ प्रोग्रामिंग सबसे अच्छा बिटवाइज़ ऑपरेटरों के साथ किया जाता है। मैं यहां उन पर नहीं जा रहा हूं, लेकिन यदि आप और अधिक सीखना चाहते हैं तो मैंने परिशिष्ट V में कुछ संसाधन प्रदान किए हैं।
कुछ MIDI नियंत्रक, जैसे अकाई MPK225 , में आफ्टरटच नाम की कोई चीज़ होती है । आफ्टरटच कंट्रोलर न केवल प्रत्येक कुंजी प्रेस के वेग के प्रति संवेदनशील होते हैं, बल्कि उस दबाव के प्रति भी संवेदनशील होते हैं जिसके साथ कुंजी रखी जाती है।
आफ्टरटच दो किस्मों में आता है: चैनल आफ्टरटच और पॉलीफोनिक आफ्टरटच । चैनल आफ्टरटच, जिसे मोनो प्रेशर के रूप में भी जाना जाता है, पूरे कीबोर्ड पर दबाव को मापता है, जबकि पॉलीफोनिक आफ्टरटच प्रत्येक कुंजी के लिए स्वतंत्र रूप से दबाव को मापता है। कम हार्डवेयर लागत के कारण, चैनल आफ्टरटच दोनों में अधिक सामान्य है। चैनल दबाव संदेश केवल एक डेटा बाइट का उपयोग करते हैं, जो समग्र दबाव स्तर का प्रतिनिधित्व करता है। पॉलीफोनिक कुंजी दबाव संदेश दो का उपयोग करते हैं: पहला पिच की रिपोर्ट करता है (मानक पिच संख्याओं का उपयोग करके), और दूसरा इसके दबाव की रिपोर्ट करता है।
विचार:
- पॉलीफोनिक आफ्टरटच एकमात्र नियंत्रण है जिसे प्रत्येक पिच के लिए स्वतंत्र रूप से सेट किया जा सकता है। प्रत्येक अन्य नियंत्रण (चालू या बंद नोट के अलावा) पूरे चैनल को प्रभावित करता है।
- मिडी का एक विस्तार, जिसे "मिडी पॉलीफोनिक एक्सप्रेशन" (एमपीई) कहा जाता है, को सीसी और पिच बेंड को पॉलीफोनिक रूप से भी लागू करने की अनुमति देने के लिए डिज़ाइन किया गया है। MPE बहुत आम नहीं है, लेकिन ROLI Seaboard जैसे उपकरणों द्वारा इसे लोकप्रिय बनाया गया है । मैंने उन संसाधनों के लिंक प्रदान किए हैं जो इसे परिशिष्ट V में कवर करते हैं ।
यदि आप बहुत अधिक बाहरी MIDI हार्डवेयर का उपयोग नहीं करते हैं, तो आप शायद इस संदेश प्रकार का बहुत बार उपयोग नहीं करेंगे। एक "प्रोग्राम चेंज" संदेश एक डिवाइस को एक नया प्रोग्राम (एक नया पैच या प्रीसेट) लोड करने का आदेश देता है। यह केवल एक डेटा बाइट का उपयोग करता है, जो पैच के सूचकांक को निर्दिष्ट करता है।
बाहरी MIDI उपकरणों के साथ रचना करते समय यह संदेश प्रकार बहुत उपयोगी होता है। जब तक आपका हार्डवेयर प्रीसेट का समर्थन करता है, तब तक आपका प्रोजेक्ट या सत्र उन्हें चुनने और लोड करने को संभाल सकता है: प्रारंभ में उचित "प्रोग्राम परिवर्तन" संदेशों को अनुक्रमित करें।
विचार:
- 128 से अधिक प्रीसेट वाले उपकरण आम तौर पर अपने पैच को कई बैंकों में संग्रहीत करते हैं । अन्य बैंकों में संग्रहीत कार्यक्रमों को याद करने के लिए, सीसी के 0 और 32 को "बैंक चयन" संदेशों में पुन: उपयोग किया जाता है। परिशिष्ट IV में , मैं देखता हूँ कि यह कैसे काम करता है।
- कार्यक्रम परिवर्तन संदेशों के चतुर शेड्यूलिंग के साथ, एक डिवाइस के लिए एक टुकड़े में 16 से अधिक विभिन्न पैच का उपयोग करना संभव है, जब तक कि वे एक साथ नहीं चल रहे हों। हालांकि वास्तविक होने के लिए, आपको संभवतः चीजों को अलग-अलग कैप्चर में विभाजित करना चाहिए यदि आपको एक ही डिवाइस से कई आवाजों को दुहना है।
- क्यूबेस और नुएन्डो मिडी ट्रैक इंस्पेक्टर में कार्यक्रम परिवर्तन संदेशों के लिए मूल समर्थन प्रदान करते हैं। मुझे यकीन नहीं है कि कितने अन्य डीएडब्ल्यू इसका समर्थन करते हैं।
सिस्टम संदेश एक उन्नत विषय है जिसे मैं यहाँ कवर नहीं करने जा रहा हूँ। वे वास्तव में अपने खुद के एक लेख के लायक हैं। उनका उपयोग सभी प्रकार की चीजों के लिए किया जाता है; विशाल डेटा ट्रांसफर (" डंप " कहा जाता है), घड़ियों को सिंक्रनाइज़ करना, टाइमकोड ट्रांसमिट करना और बहुत कुछ।
भविष्य में, मैं सिस्टम संदेशों के लिए एक मार्गदर्शिका लिख सकता हूँ, लेकिन अभी के लिए, उनके बारे में चिंता न करें। बस जागरूक रहें कि वे मौजूद हैं, और आमतौर पर मिडी संरचना में उपयोग नहीं किए जाते हैं।
4. हेक्साडेसिमल के बारे में
आगे बढ़ने से पहले, हमें उन सभी 0x के बारे में बात करनी चाहिए जिनका मैंने पिछले अनुभाग में उपयोग किया था। उपसर्ग 0x आपको बताता है कि एक संख्या हेक्साडेसिमल में है।⁵ जैसे ही आप अपने उन्नत MIDI टूल और डिवाइस मैनुअल में गोता लगाते हैं, आप देखेंगे कि MIDI संदेश लगभग हमेशा बाइनरी या बेस दस के बजाय हेक्साडेसिमल में दर्शाए जाते हैं। यह पहली बार में प्रति-सहज ज्ञान युक्त लग सकता है - मेरा मतलब है, यदि आप एक बाइनरी संख्या को परिवर्तित करने जा रहे हैं, तो क्यों न केवल मानव-पठनीय आधार दस में परिवर्तित करें?
उत्तर यह है कि यह और अधिक व्यावहारिक है। जबकि मुझे लगता है कि बाइनरी मिडी सीखना शुरू करने का सबसे अच्छा तरीका है , वास्तव में इसके साथ काम करना काफी बोझिल है। प्रत्येक बाइट को आठ अंकों में फैलाने से पढ़ना और लिखना मुश्किल हो जाता है, और चूंकि बाइनरी में सब कुछ केवल एक और शून्य होता है, इसलिए लंबे अनुक्रमों को पढ़ते समय अपनी जगह खोना आसान होता है।
तो, बिटवाइज़ प्रोग्रामर आमतौर पर हेक्साडेसिमल में काम करते हैं। यह प्रत्येक बाइट को केवल दो अंकों तक कम कर देता है, और क्योंकि 16 2 की शक्ति है, प्रत्येक बिट जिसे आप बदलते हैं वह हेक्स में केवल एक अंक को प्रभावित करता है। यह आपको प्रत्येक हेक्साडेसिमल अंक को अपनी चार-बिट संख्या के रूप में सोचने की अनुमति देता है। यदि आप दशमलव प्रतिनिधित्व पर बिटवाइज़ काम करना चाहते हैं, तो आपको पूरे बाइट को बाइनरी में बदलना होगा और फिर से वापस करना होगा।
मिडी के साथ हेक्साडेसिमल में काम करते समय केवल कुछ बातों का ध्यान रखना चाहिए।
- जिस तरह से बिट्स को हेक्साडेसिमल में समूहीकृत किया जाता है, उसके कारण आप बता सकते हैं कि कौन सा मिडी चैनल एक स्टेटस बाइट को दाहिने हेक्स अंक से ज्यादा कुछ नहीं देख रहा है।
- यदि किसी बाइट का बाएँ हाथ का अंक
0x7या उससे कम है, तो आप जानते हैं कि यह एक डेटा बाइट है, और इसी तरह, आप जानते हैं कि बाइट से शुरू होने वाला0x8या बड़ा एक स्थिति बाइट है। - अधिकतम डेटा बाइट मान, 127,
0x7Fहेक्साडेसिमल में है।
5. अनुप्रयुक्त उदाहरण: बीथोवेन की पांचवीं सिम्फनी
जब हमने पिछली बार इस उदाहरण को छोड़ा था, तब हमने अपरिष्कृत बाइनरी को असतत संदेशों में तोड़ दिया था। ऐसा दिखता था:
इस तकरार को आसान बनाने के लिए, आइए इसे हेक्साडेसिमल में बदलें। मैं स्थिति बाइट को लाल और डेटा बाइट को नीला छोड़ दूँगा।
अब हम जो जानते हैं उसे जानने के बाद, हम पहचानते हैं कि 0x9 और 0x8 के अग्रणी स्टेटस बाइट्स संदेशों को क्रमशः "नोट ऑन" और "नोट ऑफ" के रूप में पहचानते हैं। बाइट का दाहिना अंक हमें बताता है कि वे MIDI चैनल 1.⁶ को लक्षित कर रहे हैं
यहां अनुवादित स्थिति बाइट्स के साथ प्रदर्शन कैसा दिखता है।
"नोट ऑन" और "नोट ऑफ" संदेश प्रकारों में, पहला डेटा बाइट एक पिच को एन्कोड करता है, और दूसरा एक वेग को एनकोड करता है। वेग मान सिर्फ एक संख्या है। पिच का पता लगाने के लिए, हमें मिडी नोट टेबल को देखने की जरूरत है । और याद रखें, "नोट ऑफ" वेग अप्रयुक्त हैं।
आइए अनुवाद समाप्त करें:
इतना ही! वे अनुवादित मिडी निर्देश हैं जो बीथोवेन के पांचवें के पहले चार नोटों को कूटबद्ध करते हैं। दम दम दम दुम!
अब आप जो जानते हैं उसे जानने के बाद, आप सामान्य MIDI संदेशों को हाथ से तैयार और डिकोड कर सकते हैं। अधिक उन्नत उपकरण, जैसे MIDI ट्रांसफॉर्मर और तार्किक संपादक, अब आपके लिए खुले हैं। हालांकि, सीखने के लिए हमेशा कुछ और होता है। यदि आप ज्ञान के भूखे हैं, तो मैंने कुछ संसाधन प्रदान किए हैं जिनका उपयोग आप परिशिष्ट V में आगे MIDI का अध्ययन करने के लिए कर सकते हैं ।
6. बोनस पाठ: रनिंग स्थिति
एक आसान शॉर्टकट MIDI प्रदान करता है जिसका मैंने अभी तक चीजों को सरल रखने के लिए उल्लेख नहीं किया है। यहां बताया गया है कि यह कैसे काम करता है: एक बार जब आप एक स्टेटस बाइट भेज देते हैं, तो आपको दूसरी बाइट भेजने की आवश्यकता नहीं होती है, जब तक कि यह आखिरी से अलग न हो जाए। अंतिम स्थिति बाइट "चालू" बनी हुई है, और इसका उपयोग सभी डेटा बाइट्स का पालन करने के लिए किया जाता है। इसे रनिंग स्टेटस कहा जाता है ।
बाइट्स की निम्नलिखित स्ट्रिंग पर विचार करें:
आप जो देख रहे हैं वह बीथोवेन के पांचवें का ठीक वैसा ही प्रदर्शन है जिसका हमने लागू उदाहरण में अनुवाद किया था, लेकिन लगभग सभी स्टेटस बाइट्स गायब हैं। हालाँकि, रनिंग स्टेटस के कारण, यह प्रदर्शन पहले की तरह ही मान्य है। एक बार जब हम स्टेटस बाइट भेजते हैं 0x90, तो यह रनिंग स्टेटस बन जाता है, और बाइट्स के प्रत्येक जोड़े को माना जा सकता है जैसे कि वे अपने स्वयं के " 0x90" से पहले थे।
यह हमें बहुत से बार-बार होने वाले स्टेटस बाइट्स को काटने की अनुमति देता है, जो नाटकीय रूप से हमारी MIDI धाराओं को छोटा कर सकता है। जब कंप्यूटर धीमे थे और बॉड दरें अधिक प्रतिबंधात्मक थीं, तो यह अविश्वसनीय रूप से सहायक था। हालाँकि, आज कंप्यूटर इतने तेज़ हैं कि रनिंग स्टेटस का उपयोग करने से वास्तव में प्रदर्शन में उल्लेखनीय सुधार नहीं होता है। हालाँकि, मैं अभी भी इसे लाता हूँ, क्योंकि यदि आप स्वयं को कोई मिडी प्रोग्रामिंग करते हुए पाते हैं, तो आपको स्थिति बाइट्स को यहाँ और वहाँ छोड़े जाने के लिए तैयार रहना चाहिए।
ध्यान दें कि क्योंकि शून्य वेग "नोट ऑन" को "नोट ऑफ" के रूप में गिना जाता है, हम रनिंग स्टेटस को तोड़े बिना नोट्स को शुरू और समाप्त कर सकते हैं; कम से कम, जब तक कि हमें नियंत्रण परिवर्तन या किसी भिन्न चैनल को संदेश भेजने की आवश्यकता न हो।
- यह मिडी शो कंट्रोल नामक मिडी के विस्तार के साथ किया जाता है।
- "जो दिखता है वही मिलता है"।
- मिडी चैनल नंबर 1 से शुरू होते हैं, जबकि यहां उनका प्रतिनिधित्व 0 से शुरू होता है। 0 के मान का मतलब चैनल 1 है, और 15 के मान का मतलब चैनल 16 है।
- वेग के बारे में सोचा जा सकता है कि एक नोट कितना "कठिन" है।
- एक अन्य सामान्य संकेतन संख्या को बड़े अक्षर "H" के साथ "78H" के रूप में पालन करना है।
- याद रखें, भले ही संदेश में संख्या शून्य है, यह चैनल 1 से संबंधित है क्योंकि हम 0 पर संख्या और 1 पर चैनल गिनना शुरू करते हैं।
परिशिष्ट I: चैनल मोड संदेश
"चैनल मोड" संदेश विशेष आदेश हैं जो मिडी मोड को बदलकर संपूर्ण डिवाइस के व्यवहार को बदल देते हैं । अच्छी तरह की।
व्यवहार में, "चैनल मोड" संदेशों का उपयोग केवल कुछ सुविधाओं को चालू या बंद करने और कुछ आदेश भेजने के लिए किया जाता है। मिडी "मोड" के रूप में क्या गणना करता है अनिवार्य रूप से ओमनी और पॉली टॉगल की अलग-अलग कॉन्फ़िगरेशन हैं। ईमानदार होने के लिए, मुझे नहीं लगता कि "मोड" इन आदेशों के बारे में सोचने का एक उपयुक्त तरीका है; लेकिन मैं कम से कम समझाता हूँ कि आदेश क्या करते हैं।
चैनल मोड संदेशों का अपना संदेश प्रकार नहीं होता है। इसके बजाय, पिछले आठ निरंतर नियंत्रक संख्याएँ क्या होतीं (CC के 120-127) का पुन: उपयोग किया जाता है। चैनल मोड संदेश इस प्रकार हैं:
डिवाइस को चैनल मोड संदेशों का जवाब देने के लिए, उन्हें अपने मूल चैनल पर प्राप्त करने की आवश्यकता होती है । डिवाइस का मूल चैनल एकमात्र मिडी चैनल है जिस पर चैनल मोड संदेशों को मान्य माना जाता है। बहुत सारे उपकरणों के लिए, यह चैनल विन्यास योग्य है। इस तरह, चैनल मोड संदेश डेज़ी श्रृंखला के भीतर विशिष्ट उपकरणों को लक्षित कर सकते हैं।
इसके बाद प्रत्येक चैनल मोड संदेश का त्वरित सारांश दिया गया है। परिशिष्ट V में आगे के अध्ययन के लिए संसाधन हैं।
- सभी ध्वनि बंद ("सीसी" 120): नोट क्षय और रीवरब प्रभाव सहित, उपकरण द्वारा वर्तमान में बनाई जा रही सभी ध्वनि को काट देता है।
- सभी नियंत्रकों को रीसेट करें ("सीसी" 121): सभी सीसी, स्विच कंट्रोलर, पिच बेंड और आफ्टरटच इफेक्ट को उनके डिफॉल्ट पर सेट करता है। प्रत्येक नियंत्रक किस मूल्य पर लौटता है यह नियंत्रक पर निर्भर करता है, और MIDI कल्पना में परिभाषित किया गया है।
- स्थानीय नियंत्रण ("सीसी" 122): एक सिंथेसाइज़र पर कीबोर्ड को उसके टोन जनरेटर से डिस्कनेक्ट करता है। यह आपको एक सिंथेसाइज़र को MIDI नियंत्रक के रूप में उपयोग करने की अनुमति देता है जबकि उसी समय इसके लिए अनुक्रमण करता है।
0x00स्थानीय नियंत्रण को बंद करने और0x7Fइसे वापस चालू करने के लिए सेट करें । - ऑल नोट्स ऑफ ("सीसी" 123): "पैनिक बटन"। ऑल नोट्स ऑफ हर चैनल पर हर पिच के लिए "नोट ऑफ" संदेश भेजने के बराबर है। यह अटके हुए नोटों को हल करने के लिए आसान है। स्थानीय रूप से ट्रिगर नोट अप्रभावित हैं।
- ओमनी मोड ऑफ/ऑन ("सीसी" 124, 125): जब ओमनी मोड चालू होता है, तो प्रत्येक चैनल प्रत्येक इनबाउंड संदेश का जवाब देगा, इससे कोई फर्क नहीं पड़ता कि स्थिति बाइट में कौन सा चैनल इंगित किया गया है।
- मोनो मोड / पॉली मोड ("सीसी" 126, 127): एक आवाज या आवाज को मोनोफोनिक व्यवहार या पॉलीफोनिक व्यवहार के लिए मजबूर करता है। यदि "मोनो मोड ऑन" मान पर सेट है
0x00, तो मूल चैनल और इसके ऊपर के प्रत्येक चैनल को मोनो मोड पर सेट किया जाएगा। किसी अन्य मान n के लिए, n से n+m-1 तक के चैनल मोनो मोड पर सेट किए जाएंगे (जहां m दूसरे डेटा बाइट का मान है)। एक "पॉली मोड ऑन" संदेश सभी चैनलों को वापस पॉली मोड में सेट कर देगा।
परिशिष्ट III: मानक सीसी असाइनमेंट
मिडी विनिर्देश सीसी के मानकीकृत उपयोगों को परिभाषित करता है, जिसे मैंने यहां कॉपी किया है। 3, 9, 14, 15, 20–31, 85–90, और 102–119 को छोड़कर सभी CC संख्याएँ परिभाषित हैं । सबसे व्यापक रूप से समर्थित सीसी मॉड्यूलेशन ( 0x01), फुट कंट्रोलर ( 0x04), चैनल वॉल्यूम ( 0x07), पैन ( 0x0A), एक्सप्रेशन ( 0x0B), और सस्टेन ( 0x40) हैं।
यदि आप इन सीसी के बारे में अधिक जानना चाहते हैं तो परिशिष्ट V में संसाधन देखें ।
परिशिष्ट IV: बैंक परिवर्तन संदेश
Modern synthesizers can store and recall many, many more presets than can be addressed by a single program change message. To get around this, manufacturers often sort their programs into banks. Each bank has a maximum of 128 presets, and a unique 7-bit or 14-bit address.
To recall a patch from a different bank, you must first send a “bank select” message with its address. After that, send a program change message as usual, and the patch loaded will come from the new bank.
As you might’ve noticed, these are actually “control change” messages for CC’s 0 and 32. For 7-bit addresses, only CC 0 is used. For 14-bit addresses, CC 0 represents an MSB, and 32 an LSB. If you need a primer on MSB’s and LSB’s, there’s one in the Pitch Bend section of the main article.
Whether a device uses 7-bit or 14-bit addresses is kind of arbitrary, and you’ll need to check your manual to know which to use when communicating with your device.
Appendix V: Additional Resources
- The MIDI Association: The MIDI Association is the primary repository of information about or related to MIDI technology. It’s free to register, and once you do, you can download The Complete MIDI 1.0 Detailed Specification here.
- Bitwise Operation (Wikipedia): I know, I know, Wikipedia isn’t a good primary resource, but I like this article because it’s language-neutral and doesn’t have ads. Study up on arithmetic bit shifts and bitwise OR, which are useful when working with MSBs and LSBs.
- What is MPE?: An article in ROLI’s support database going over MIDI Polyphonic Expression, which is used in multidimensional controllers like the Seaboard products. MPE was formally adopted by the MIDI Manufacturer’s Association in January 2018, and a download link to the spec is available here.
- MIDI Modes (Electronic Music Interactive v2, University of Oregon): This page offers a good, concise overview of the four standard MIDI modes. It’s part of a longer online course on electronic music.
- MIDI CC List (Nick Fever): A list of the standard CC’s with more elaborate explanations. If you still need more information after going through Nick’s list, refer to The Complete MIDI 1.0 Detailed Specification, which you can download here.
- MIDI सिस्टम सामान्य संदेश , MIDI सिस्टम रीयलटाइम संदेश , और MIDI सिस्टम विशिष्ट संदेश (RecordingBlogs Wiki): प्रत्येक प्रकार के सिस्टम संदेश का उत्कृष्ट परिचय।
- MIDI पंजीकृत पैरामीटर संख्या (RecordingBlogs Wiki): पंजीकृत पैरामीटर संख्याओं का अवलोकन, जिसे CC के विस्तार के रूप में माना जा सकता है। एक बार जब आप आरपीएन को समझ जाते हैं, तो एनआरपीएन (गैर-पंजीकृत पैरामीटर नंबर) भी आपके लिए सुलभ हो जाएंगे।

![क्या एक लिंक्ड सूची है, वैसे भी? [भाग 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































