ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE
उपयोगकर्ता मैनुअल
MIDI सिंटैक्स
OnSong एक पाठ-आधारित वाक्य-रचना का उपयोग करता है MIDI कमांड व्यक्त करने के लिए। जबकि आप MIDI इवेंट्स का उपयोग कर सकते हैं मेटाडेटा संपादक में, आप पाठ में MIDI कमांड भी व्यक्त कर सकते हैं।
सीमांकित मान
सबसे पहले, कई MIDI कमांड को विभिन्न वर्णों द्वारा अलग किया जा सकता है जिसमें शामिल हैं: एक टैब वर्ण, अल्पविराम, अर्धविराम, ऊर्ध्वाधर पाइप, या नई पंक्ति। अल्पविराम सबसे सामान्य सीमांकक है। उदाहरण के लिए:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
चैनल
प्रत्येक प्रविष्टि में @ प्रतीक हो सकता है। प्रतीक के बाद संख्यात्मक मान वह चैनल है जिस पर कमांड भेजी जानी है। चूँकि MIDI में चैनल शून्य पर शुरू होते हैं, चैनल एक शून्य (0) होगा, चैनल दो एक (1) आदि होगा।
यदि कोई @ प्रतीक का उपयोग नहीं किया जाता है, तो कमांड सभी चैनलों पर भेजी या प्राप्त की जाती है।
उपसर्ग
सूची में प्रत्येक प्रविष्टि में एक उपसर्ग है। यह उपसर्ग निर्धारित करता है कि किस प्रकार की MIDI कमांड भेजनी है। इनमें शामिल हैं:
- PC या कोई उपसर्ग नहीं एक प्रोग्राम परिवर्तन इवेंट है।
- N एक नोट इवेंट है
- CC एक नियंत्रण परिवर्तन इवेंट है।
- SS एक गीत चयन इवेंट है।
- START एक प्रारंभ कमांड है।
- STOP एक स्टॉप कमांड है।
- CONTINUE एक जारी रखने की कमांड है।
- WAIT अधिक इवेंट्स भेजने से पहले एक विशिष्ट समय के लिए प्रतीक्षा करता है।
- F0 एक SysEx संदेश का उपसर्ग है।
- @ एक MIDI वैश्विक टैग का उपसर्ग है।
मान
कमांड का मान @ प्रतीक से ठीक पहले या प्रविष्टि के अंत में दिखाई देता है यदि कोई @ नहीं दिया गया है। यह प्रोग्राम परिवर्तन, नियंत्रण परिवर्तन, नोट, या गीत चयन का मान है जो उपसर्ग पर आधारित है। SysEx प्रविष्टियों के मामले में, SysEx का हेक्साडेसिमल मान F0 उपसर्ग के तुरंत बाद प्रदान किया जाता है जिसका उपयोग सभी SysEx कमांड के लिए हेडर के रूप में किया जाता है।
उप-मान
कुछ मामलों में, अतिरिक्त जानकारी MIDI कमांड में उप-मान के रूप में व्यक्त की जाती है। उदाहरण के लिए, MSB और LSB, साथ ही नियंत्रण मानों का वेग इस तरह भेजा जा सकता है। यह मान भाग में एक कोलन जोड़ने के माध्यम से व्यक्त किया जाता है। उप-मान का विभिन्न संदर्भ है MIDI कमांड के प्रकार के आधार पर भेजा जाता है:
- प्रोग्राम परिवर्तन में प्रोग्राम परिवर्तन के MSB/LSB के साथ संरेखित उप-मान हैं। ये मान एक अवधि से अलग किए जाते हैं MSB बाईं ओर और LSB दाईं ओर होते हैं।
- नियंत्रण परिवर्तन में इस का उपयोग करके सेट किए गए नियंत्रण का मान है। संख्या 0 और 127 के बीच हो सकती है। यदि छोड़ा जाता है, तो 127 का मान अनुमानित किया जाता है। आप एक हाइफन से अलग करके कई मानों को भी अलग कर सकते हैं मानों के माध्यम से कदम। उदाहरण के लिए, 127-0 127 के मान को चालू और बंद स्थितियों के बीच लैच करेगा।
- नोट इवेंट में नोट का वेग मान होता है जिस पर नोट को चलाया जाना चाहिए। इसे 0 और 127 के बीच एक संख्यात्मक मान पर सेट किया जा सकता है। आप हाइफन से अलग करके कई नोट वेलोसिटीज के माध्यम से कदम उठा सकते हैं।
उदाहरण
आइए एक साधारण प्रोग्राम परिवर्तन के साथ शुरू करें। इस परिदृश्य में हम प्रोग्राम परिवर्तन 8 का उपयोग करते हैं जो चैनल 1 पर 4 का MSB और 2 का LSB भी भेजता है। उदाहरण सबसे जटिल विविधता के साथ शुरू होता है और बैंक चयन और चैनल को हटाकर अधिक व्यापक हो जाता है:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
नियंत्रण परिवर्तन समान हैं सिवाय इसके कि वाक्य-रचना का बायां भाग नियंत्रण परिवर्तन संख्या है और दायां भाग एक वैकल्पिक मान है। यदि मान प्रदान नहीं किया जाता है, तो 127 भेजा जाता है। हम चैनल 3 पर 64 के मान के साथ नियंत्रण परिवर्तन 106 भेजेंगे।
CC105:63@2, CC105:63. CC105@2, CC105
अब नोट इवेंट्स पर एक नज़र डालते हैं। हम चैनल 8 पर 75% वेग में C4 चलाना चाहते हैं, हम निम्नलिखित दर्ज करेंगे क्योंकि OnSong MIDI C0 को MIDI नोट स्केल पर 0 के रूप में गिनना शुरू करता है:
N60:95@7, N60@7, N60:95, N60
फिर से, यह याद रखना महत्वपूर्ण है कि जैसे-जैसे मान MIDI वाक्य-रचना से हटाए जाते हैं, MIDI कथन अधिक व्यापक और कम विशिष्ट हो जाता है। उदाहरण के लिए, नोट इवेंट का अंतिम संस्करण सभी चैनलों पर 100% वेग पर C4 भेजेगा।
हम एक WAIT कमांड जोड़कर MIDI को भी विलंबित कर सकते हैं। निम्नलिखित MIDI को 2 सेकंड के साथ-साथ 500 ms (आधा सेकंड) तक विलंबित करेगा। आप सेकंड को 1-10 सेकंड या मिलीसेकंड में निर्दिष्ट कर सकते हैं।
WAIT2, WAIT500
अंत में, हम MIDI वैश्विकों का संदर्भ दे सकते हैं जो MIDI इवेंट्स की पूर्व-कॉन्फ़िगर की गई सूचियां हैं जिनका संदर्भ दिया जा सकता है। यदि आपके पास "on" टैग के साथ एक MIDI वैश्विक है (कोई उद्धरण नहीं हैं), तो आप निम्नलिखित के साथ उस वैश्विक का संदर्भ दे सकते हैं:
@on