بنية MIDI

توضِّح هذه المقالة بنية MIDI العامة، بغض النظر عن أي تنفيذ منصة أو واجهة برمجة تطبيقات أو ميزات خاصة بالمنصة.

المفاهيم الرئيسية

الأحداث

تم تصميم بروتوكول MIDI للتواصل المستنِد إلى الأحداث. الحدث هو مؤشر على أنّه حدث شيء ما أو سيحدث في وقت محدّد. يتم تمثيل أحداث MIDI من خلال الرسائل، وهي حزم أساسية للمعلومات.

النقل

يتم ترميز رسائل MIDI وإرسالها من خلال طبقة النقل، والتي تُختصر transport، وتُرسِل بيانات MIDI الأوّلية إلى المستلِم الذي يفك ترميز البيانات إلى رسائل.

تشمل عمليات نقل MIDI المستندة إلى الأجهزة ما يلي:

  • حلقة التيار MIDI 1.0 مع موصل DIN من 5 دبابيس
  • USB
  • بلوتوث منخفض استهلاك الطاقة

تمثيل الرسالة

تصف مواصفات نقل MIDI كيفية نقل الرسائل. على الرغم من أنّ تجميع الرسائل خاص بنقل البيانات على أدنى مستوى، يمكن للتطبيقات على مستوى أعلى اعتبار تسلسل الرسائل بترتيب زمني على أنّه بث بايتات مُحدَّد. ويعود السبب في ذلك إلى أنّ كل رسالة تحتوي على معلومات كافية لتحديد الطول الإجمالي للرسالة، شرط أن تكون بداية حدود الرسالة معروفة.

تكون معظم رسائل MIDI قصيرة (من بايت واحد إلى ثلاثة بايت)، ومع ذلك، يمكن إرسال رسائل أطول من خلال SysEx.

الطوابع الزمنية

الطابع الزمني هو تصنيف اختياري مرفق بالرسالة عند إنشائها أو عند استلامها، استنادًا إلى طريقة النقل. يتم التعبير عن الطابع الزمني بوحدات زمنية مثل الثواني أو العلامات.

في حال عدم توفّر طابع زمني صريح، يجب أن يستبدل النظام الطابع الزمني للرسالة السابقة مباشرةً أو الوقت الحالي. إنّ دقة الطوابع الزمنية هذه، سواء كانت صريحة أو ضمنية، تشكّل جانبًا مهمًا من موثوقية النظام المستنِد إلى MIDI.

لا تشكّل الطوابع الزمنية جزءًا من بروتوكول MIDI 1.0. ويتم تضمينها غالبًا كجزء من واجهة برمجة تطبيقات خاصة بمنصّة معيّنة. يحتوي بروتوكول النقل BLE على طوابع زمنية للإشارة إلى توقيت الرسائل الفردية المتعددة المُرسَلة ضمن حزمة BLE واحدة.

الأجهزة

يوفّر الجهاز الملحق إمكانية إدخال/إخراج (I/O) للكمبيوتر. تشير المصطلحات جهاز MIDI الملحق وجهاز MIDI عادةً إلى أي وحدة أجهزة أو برامج متوافقة مع بروتوكول MIDI. في هذا المستند، يشير جهاز MIDI الملحق إلى العنصر المادي، ويصف جهاز MIDI الوحدة التي تنفّذ MIDI فعليًا.

المنافذ

المنفذ هو نقطة واجهة بين أجهزة الكمبيوتر والأجهزة الطرفية.

يستخدم MIDI 1.0 مقبس DIN أنثى مكوّنًا من 5 سنون كمنفذ. يكون كل منفذ إما OUT (مصدر بيانات MIDI) أو IN (وجهة بيانات MIDI) أو THRU (أي منفذ IN يتم توجيهه مباشرةً إلى منفذ OUT).

توفّر وسائل النقل الأخرى، مثل USB وBLE، مفهوم المنفذ.

يحتوي جهاز MIDI على منفذ OUT أو منفذ IN أو كليهما على الأقل.

يقدّم جهاز MIDI مجموعات من الرسائل التي تبدأ من كل منفذ OUT، ويتلقّى مجموعات من الرسائل الواردة من كل منفذ IN. إنّ المصطلحين IN وOUT يرتبطان بمنفذ واحد، ولكن من منظور المنفذ الآخر، ينطبق المصطلح عكس ذلك.

الاتصال

في نقل MIDI 1.0، يتم توصيل منفذ OUT بحد أقصى منفذ IN أو THRU واحد بسبب طبيعة حلقة التيار. في عمليات النقل عبر USB وBLE، ينطبق الأمر نفسه على أدنى طبقة، إلا أنّه قد يعيد التنفيذ معالجة بث الرسائل لكي تتمكّن من البث إلى منافذ IN متعددة.

الكابلات

كابل MIDI 1.0 هو مجموعة من الأسلاك المادية التي تربط منفذ OUT بمنفذ IN أو THRU. ينقل الكابل البيانات فقط.

ملاحظة:هناك تعديلات غير عادية على MIDI توفّر الطاقة من خلال دبوسين غير مستخدَمين. ويُطلق على ذلك اسم الطاقة الشبحية.

يشبه كابل USB هذا المفهوم، باستثناء أنّ هناك مجموعة كبيرة من أنواع الموصّلات، ويتم استبدال مفهوم IN/OUT/THRU بدور المضيف/الجهاز الملحق.

عند التشغيل في وضع مضيف USB، يمد الجهاز المضيف بالطاقة الجهاز الملحق MIDI. تستهلك معظم الأجهزة الطرفية الصغيرة التي تستخدم منفذ MIDI وحدة USB واحدة (100 mA) أو أقل. ومع ذلك، تتطلّب بعض الأجهزة الملحقة الأكبر حجمًا أو الأجهزة الملحقة التي تُصدر صوتًا أو ضوءًا طاقة أكبر مما يمكن للجهاز المضيف توفيره. إذا واجهت مشاكل، جرِّب جهازًا طرفيًا آخر للاتصال بأجهزة MIDI أو مهايئ USB مزوّدًا بمصدر طاقة.

القناة

يتم تعدد كل بث رسائل MIDI بين 16 قناة. يتم توجيه معظم الرسائل إلى قناة معيّنة، ولكن هناك أنواع رسائل ليست خاصة بقناة معيّنة. يتم عادةً ترقيم القنوات من واحد إلى 16، مع أنّه يتم تمثيلها بقيمها من صفر إلى 15.

إذا كان التطبيق يحتاج إلى أكثر من 16 قناة أو معدل نقل بيانات أعلى مما يمكن أن يقدّمه بث رسائل واحد، يجب استخدام منافذ متعددة.

في MIDI 1.0، يتم ذلك من خلال عدة كابلات تربط أزواجًا من المنافذ.

في نقل MIDI عبر USB، يمكن أن توفّر نقطة نهاية USB واحدة منافذ متعددة، يتم تحديد كل منها من خلال رقم الكابل [sic]. وفقًا لمواصفات USB MIDI، يحدد رقم الكابل المنفذ الافتراضي ضمن نقطة النهاية.

ملاحظة: رقم المنفذ هو مصطلح أكثر دقة، لأنّه يحدّد منفذًا.

وبالتالي، يمكن أن ينقل كابل USB واحد أكثر من مجموعة واحدة من 16 قناة.

تنفيذ المنصة

كما هو موضّح في المقدمة، تنطبق مفاهيم MIDI العامة هذه على جميع عمليات التنفيذ. لتفسير المفاهيم على منصة Android ، يُرجى الاطّلاع على دليل مستخدم Android MIDI لنظام التشغيل android.media.midi.