دليل المستخدم
بناء جملة 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 هو أمر المتابعة.
- F0 يسبق رسالة SysEx.
- WAIT يطبق تأخيرًا.
القيم
تظهر قيمة الأمر قبل رمز @ أو في نهاية الإدخالة إذا لم يتم إعطاء @. هذه هي قيمة تغيير البرنامج، أو تغيير التحكم، أو الملاحظة، أو اختيار الأغنية بناءً على البادئة. في حالة إدخالات SysEx، يتم توفير القيمة السادسة عشرية لـ SysEx مباشرة بعد بادئة F0 التي تُستخدم كرأس لجميع أوامر SysEx.
القيم الفرعية
في بعض الحالات، يتم نقل معلومات إضافية في أمر MIDI كقيم فرعية. على سبيل المثال، يمكن إرسال MSB و LSB بالإضافة إلى سرعة قيم التحكم بهذه الطريقة. يتم التعبير عن هذا من خلال إضافة نقطتين في جزء القيمة. للقيمة الفرعية سياق مختلف اعتمادًا على نوع أمر MIDI المرسل:
- تغيير البرنامج يحتوي على قيم فرعية تتوافق مع MSB/LSB لتغيير البرنامج. يتم فصل هذه القيم بفترة مع MSB على اليسار و LSB على اليمين.
- تغيير التحكم يحتوي على قيمة التحكم المعيّنة باستخدام هذا. يمكن أن يكون الرقم بين 0 و 127. إذا تم حذفها، يتم استدلال قيمة 127.
- حدث الملاحظة يحتوي على قيمة فرعية تتعلق بسرعة تشغيل الملاحظة. يمكن تعيين هذا إلى قيمة رقمية بين 0 و 127.
أمثلة
لنبدأ بتغيير برنامج بسيط. في هذا السيناريو نستخدم تغيير البرنامج 8 الذي يرسل أيضًا MSB بقيمة 4 و LSB بقيمة 2 على القناة 1. يبدأ المثال بأكثر التنويعات تعقيدًا لهذا ويزيل اختيار البنك والقناة ليصبح أوسع:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
تغييرات التحكم متشابهة باستثناء أن الجانب الأيسر من الصيغة هو رقم تغيير التحكم والجانب الأيمن هو قيمة اختيارية. إذا لم يتم توفير القيمة، يتم إرسال 127 بدلاً من ذلك. سنرسل تغيير التحكم 106 بقيمة 64 على القناة 3.
CC105:63@2, CC105:63. CC105@2, CC105
الآن دعنا نلقي نظرة على أحداث الملاحظة. نريد تشغيل C4 على القناة 8 بسرعة 75%، سنكتب ما يلي لأن OnSong يبدأ حساب MIDI C0 كـ 0 على مقياس ملاحظة MIDI:
N60:95@7, N60@7, N60:95, N60
مرة أخرى، من المهم أن نتذكر أنه مع إزالة القيم من صيغة MIDI، تصبح عبارة MIDI أوسع وأقل تحديدًا. على سبيل المثال، ستُرسل النسخة الأخيرة من حدث الملاحظة C4 بسرعة 100% على جميع القنوات.
لتطبيق تأخير بين أحداث MIDI أخرى، استخدم أمر WAIT برقم. يمكن أن يكون الرقم قيمة عددية. يمكنك تحديد الثواني للانتظار من 1-10، أو التحديد بالميلي ثانية. المثال التالي يوضح كيفية الانتظار لمدة ثانيتين و 10 ثوانٍ ونصف ثانية.
WAIT2, WAIT10, WAIT500