هندسة MIDI

توضح هذه المقالة بنية MIDI العامة، بشكل مستقل عن أي تطبيق للنظام الأساسي أو واجهة برمجة التطبيقات (API) أو الميزات الخاصة بالنظام الأساسي.

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

الأحداث

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

ينقل

يتم تشفير رسائل MIDI وتسليمها عبر طبقة النقل ، النقل المختصر، والتي ترسل بيانات MIDI الأولية إلى المستلم الذي يقوم بعد ذلك بفك تشفير البيانات إلى رسائل.

تتضمن عمليات نقل MIDI القائمة على الأجهزة ما يلي:

  • حلقة MIDI 1.0 الحالية مع موصل DIN ذو 5 سنون
  • USB
  • بلوتوث منخفض الطاقة (BLE)

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

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

معظم رسائل MIDI قصيرة (من 1 إلى 3 بايت)، إلا أن هناك إمكانية لإرسال رسائل أطول عبر 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 مللي أمبير) أو أقل. ومع ذلك، تتطلب بعض الأجهزة الطرفية الأكبر حجمًا، أو الأجهزة الطرفية المزودة بإخراج صوت أو أضواء، طاقة أكبر مما يستطيع الجهاز المضيف توفيره. إذا واجهت مشكلات، فجرب جهاز MIDI طرفيًا آخر أو لوحة وصل USB مزوّدة بالطاقة.

قناة

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

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

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

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

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

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

تنفيذ المنصة

كما هو مذكور في المقدمة، تنطبق مفاهيم MIDI العامة هذه على كافة التطبيقات. لتفسير المفاهيم على نظام Android الأساسي، راجع دليل مستخدم Android MIDI لـ android.media.midi .