मिडी वास्तुकला

यह आलेख सामान्य MIDI आर्किटेक्चर का वर्णन करता है, जो किसी भी प्लेटफ़ॉर्म कार्यान्वयन, एपीआई या प्लेटफ़ॉर्म-विशिष्ट सुविधाओं से स्वतंत्र है।

महत्वपूर्ण अवधारणाएं

आयोजन

MIDI प्रोटोकॉल इवेंट-आधारित संचार के लिए डिज़ाइन किया गया है। कोई घटना इस बात का संकेत है कि किसी निर्दिष्ट समय पर कुछ घटित हुआ या घटित होगा। MIDI घटनाओं को संदेशों , सूचना के परमाणु बंडलों द्वारा दर्शाया जाता है।

परिवहन

MIDI संदेशों को एक ट्रांसपोर्ट लेयर , संक्षिप्त ट्रांसपोर्ट के माध्यम से एन्कोड और डिलीवर किया जाता है, जो प्राप्तकर्ता को कच्चा MIDI डेटा भेजता है जो फिर डेटा को संदेशों में डीकोड करता है।

हार्डवेयर-आधारित MIDI परिवहन में शामिल हैं:

  • 5-पिन DIN कनेक्टर के साथ MIDI 1.0 करंट लूप
  • USB
  • ब्लूटूथ कम ऊर्जा (बीएलई)

संदेश प्रतिनिधित्व

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

अधिकांश MIDI संदेश छोटे होते हैं (एक से तीन बाइट्स), फिर भी SysEx के माध्यम से लंबे संदेशों की क्षमता होती है।

मुहर

टाइमस्टैम्प एक वैकल्पिक लेबल है जो परिवहन के आधार पर किसी संदेश के आरंभ या प्राप्ति पर जुड़ा होता है। टाइमस्टैम्प को समय इकाइयों जैसे सेकंड या टिक में व्यक्त किया जाता है।

स्पष्ट टाइमस्टैम्प के अभाव में, सिस्टम को तत्काल पूर्ववर्ती संदेश या वर्तमान समय के टाइमस्टैम्प को प्रतिस्थापित करना होगा। इन टाइमस्टैम्प की सटीकता, चाहे स्पष्ट हो या अंतर्निहित, MIDI-आधारित प्रणाली की विश्वसनीयता का एक महत्वपूर्ण पहलू है।

टाइमस्टैम्प MIDI 1.0 प्रोटोकॉल का हिस्सा नहीं हैं। इन्हें अक्सर प्लेटफ़ॉर्म-विशिष्ट एपीआई के भाग के रूप में जोड़ा जाता है। BLE ट्रांसपोर्ट में एक BLE पैकेट के भीतर भेजे गए कई अलग-अलग संदेशों के समय को इंगित करने के लिए टाइमस्टैम्प होते हैं।

उपकरण

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

बंदरगाहों

पोर्ट कंप्यूटर और बाह्य उपकरणों के बीच एक इंटरफ़ेस बिंदु है।

MIDI 1.0 पोर्ट के रूप में एक महिला 5-पिन DIN सॉकेट का उपयोग करता है। प्रत्येक पोर्ट या तो OUT (MIDI डेटा का स्रोत), IN (MIDI डेटा के लिए सिंक), या THRU (मतलब एक IN जो सीधे OUT पर रूट किया जाता है) है।

यूएसबी और बीएलई जैसे अन्य ट्रांसपोर्ट पोर्ट अवधारणा का विस्तार करते हैं।

एक MIDI डिवाइस में कम से कम एक OUT पोर्ट, IN पोर्ट या दोनों होते हैं।

MIDI डिवाइस प्रत्येक OUT पोर्ट पर आने वाले संदेशों की स्ट्रीम की आपूर्ति करता है, और प्रत्येक IN पोर्ट पर आने वाले संदेशों की स्ट्रीम प्राप्त करता है। IN और OUT शब्द निश्चित रूप से एक पोर्ट से संबंधित हैं; दूसरे पोर्ट के परिप्रेक्ष्य से विपरीत शब्द लागू होता है।

संबंध

MIDI 1.0 ट्रांसपोर्ट में, एक OUT पोर्ट वर्तमान लूप की प्रकृति के कारण अधिकतम एक IN या THRU पोर्ट से जुड़ता है। यूएसबी और बीएलई ट्रांसपोर्ट में, सबसे निचली परत पर भी यही सच है, हालांकि एक कार्यान्वयन संदेश स्ट्रीम को फिर से कंडीशन कर सकता है ताकि इसे कई आईएन पोर्ट पर प्रसारित किया जा सके।

केबल

MIDI 1.0 केबल तारों का भौतिक बंडल है जो OUT पोर्ट को IN या THRU पोर्ट से जोड़ता है। केबल केवल डेटा ले जाता है.

नोट: MIDI में गैर-मानक संशोधन हैं जो दो अप्रयुक्त पिनों पर बिजली की आपूर्ति करते हैं। इसे प्रेत शक्ति कहते हैं.

एक यूएसबी केबल समान है, सिवाय इसके कि कनेक्टर प्रकारों की एक विस्तृत विविधता है, और IN / OUT / THRU अवधारणा को होस्ट / परिधीय भूमिका द्वारा प्रतिस्थापित किया गया है।

USB होस्ट मोड में काम करते समय, होस्ट डिवाइस MIDI परिधीय को बिजली की आपूर्ति करता है। अधिकांश छोटे MIDI परिधीय उपकरण एक USB यूनिट लोड (100 mA) या उससे कम लेते हैं। हालाँकि कुछ बड़े बाह्य उपकरणों, या ऑडियो आउटपुट या रोशनी वाले बाह्य उपकरणों को होस्ट डिवाइस की आपूर्ति से अधिक बिजली की आवश्यकता होती है। यदि आप समस्याओं का अनुभव करते हैं, तो किसी अन्य MIDI परिधीय या एक संचालित USB हब का प्रयास करें।

चैनल

प्रत्येक MIDI संदेश स्ट्रीम को 16 चैनलों के बीच मल्टीप्लेक्स किया गया है। अधिकांश संदेश एक विशिष्ट चैनल पर निर्देशित होते हैं, लेकिन ऐसे संदेश प्रकार भी होते हैं जो चैनल-विशिष्ट नहीं होते हैं। परंपरागत रूप से चैनलों की संख्या एक से 16 तक होती है, हालांकि इसे शून्य से 15 के चैनल मानों द्वारा दर्शाया जाता है।

यदि एप्लिकेशन को 16 से अधिक चैनलों या एक संदेश स्ट्रीम द्वारा समर्थित उच्च थ्रूपुट की आवश्यकता है, तो एकाधिक पोर्ट का उपयोग किया जाना चाहिए।

MIDI 1.0 में, यह पोर्ट के जोड़े को जोड़ने वाले कई केबलों द्वारा पूरा किया जाता है।

USB ट्रांसपोर्ट पर MIDI में, एक एकल USB एंडपॉइंट कई पोर्ट का समर्थन कर सकता है, प्रत्येक को एक केबल नंबर [sic] द्वारा पहचाना जाता है। यूएसबी मिडी विनिर्देश के अनुसार, केबल नंबर एंडपॉइंट के भीतर वर्चुअल पोर्ट की पहचान करता है।

नोट: पोर्ट नंबर अधिक सटीक शब्द होता, यह देखते हुए कि यह एक पोर्ट की पहचान करता है।

इस प्रकार एक एकल USB भौतिक केबल 16 चैनलों के एक से अधिक सेट को ले जा सकता है।

प्लेटफार्म कार्यान्वयन

जैसा कि परिचय में बताया गया है, ये सामान्य MIDI अवधारणाएँ सभी कार्यान्वयन पर लागू होती हैं। Android प्लेटफ़ॉर्म पर अवधारणाओं की व्याख्या के लिए, android.media.midi के लिए Android MIDI उपयोगकर्ता मार्गदर्शिका देखें।