MIDI

آلات موسيقية رقمية الواجهة (MIDI) هي بروتوكول قياسي لربط أجهزة الكمبيوتر بأنظمة الموسيقى الآلات، وإضاءة المسرح، وغيرها من الوسائط ذات الوقت المحدد.

بدءًا من نظام التشغيل Android 13، تتم إضافة دعم MIDI 2.0 إلى نقل USB. MIDI 2.0 هو أحدث MIDI المحدد في عام 2020. يضيف هذا البروتوكول ميزات مثل الاتصال المتبادل، الحل وتبادل الممتلكات. يتم دائمًا تفعيل MIDI 2.0 عبر وضع مضيف USB عند التوافق مع MIDI. مفعّلة على النظام الأساسي.

على وجه التحديد، لا علاقة لـ MIDI بالصوت. ولكن نظرًا لاستخدام MIDI بشكل شائع مع الموسيقى، يتم وضع هذه المقالة في قسم الصوت.

MIDI لـ NDK

يسهّل Android 10 نقل تطبيقات الصوت الاحترافية. باستخدام MIDI في نظام Android الأساسي.

AMidi هو NDK API التي تمنح التطبيق إمكانية إرسال بيانات MIDI واستلامها باستخدام رمز C/C++.

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

وسائل النقل

النقل الفعلي طبقة المحدد في MIDI الأصلي 1.0 هو تكرار حلقي حالي موصل DIN مكوَّن من 5 دبابيس.

منذ الإصدار MIDI 1.0، تم تحديد وسائل نقل إضافية، بما في ذلك MIDI عبر USB. وMIDI خلال البلوتوث منخفض الطاقة (BLE).

MIDI لأجهزة Android

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

يمكن لمصنعي الأجهزة تفعيل MIDI الاختياري بدءًا من إصدار Android 6.0 (Marshmallow) والدعم في النظام الأساسي. يتوافق Android مباشرةً مع وسائل النقل عبر USB وBLE وعمليات النقل الافتراضية (interapp). يتوافق Android مع الإصدار 1.0 من MIDI من خلال محوّل خارجي.

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

تناقش بقية هذه المقالة كيف يمكن لأي صانع أجهزة Android إتاحة MIDI في النظام الأساسي.

تفعيل عمليات نقل MIDI 1.0

يعتمد تنفيذ MIDI 1.0 على ALSA في وضع مضيف USB وعمليات النقل في وضع الأجهزة الملحقة USB. ولا يتم استخدام ALSA في عمليات النقل الآمن من شبكة Wi-Fi ووسائل النقل الافتراضية.

وضع مضيف USB

لتفعيل MIDI لوضع مضيف USB، عليك أولاً إتاحة وضع مضيف USB بشكل عام. ثم تفعيل CONFIG_SND_RAWMIDI وCONFIG_SND_USB_MIDI في النواة التكوين. يمكنك الاطّلاع على ضبط نواة Android.

يتم تحديد نقل MIDI عبر USB رسميًا عن طريق تعريف فئة جهاز الناقل التسلسلي العالمي لأجهزة MIDI بتاريخ 1 تشرين الثاني (نوفمبر) 1999 المعيار المنشور بواسطة USB Implementers Forum, Inc.

وضع الأجهزة الملحقة بكابل USB

لتفعيل MIDI لوضع الأجهزة الملحقة USB، قد تحتاج إلى تطبيق رموز التصحيح إلى نواة Linux لدمج drivers/usb/gadget/f_midi.c في أداة USB السائق. تتوفر رموز التصحيح هذه لإصدار نواة Linux. 3.10. لم يتم تحديث رموز التصحيح هذه بعد. الإعدادات (بنية جديدة لبرامج تشغيل أدوات USB)، ولا يتم دمجها في عمليات التحميل الرئيسية kernel.org.

يتم عرض التصحيحات بترتيب التنفيذ لشجرة النواة في المشروع kernel/common. الفرع android-3.10:

  1. https://android-review.googlesource.com/#/c/127450/
  2. https://android-review.googlesource.com/#/c/127452/
  3. https://android-review.googlesource.com/#/c/143714/

تحتاج أيضًا إلى إجراء أي مما يلي:

  • انتقِل إلى الإعدادات > خيارات المطوّرين > التواصل ضَع علامة في المربّع بجانب MIDI في مربّع الحوار "اختيار ضبط USB".
  • أثناء توصيل الجهاز بمضيف USB، اسحب من أعلى الشاشة لأسفلها واختَر الإدخال. USB في، ثم اختَر MIDI.

BLE

يتم دائمًا تفعيل MIDI عبر BLE، بشرط أن يتيح الجهاز استخدام BLE.

افتراضي (interapp)

تفعيل النقل الافتراضي (interapp) دائمًا

المطالبة بالميزة

يمكن للتطبيقات التحقق من توفُّر دعم MIDI باستخدام ميزة "android.software.midi"

لطلب دعم MIDI، يُرجى إضافة هذا السطر إلى device.mk:

PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software.
midi.xml

يمكنك الاطّلاع على مستند تعريف التوافق مع Android (CDD) للحصول على معلومات بشأن متطلبات المطالبة بالميزة.

تصحيح الأخطاء في وضع المضيف

أثناء استخدام وضع مضيف USB، لا يتوفّر تصحيح الأخطاء Android Debug Bridge (adb) عبر USB. يمكنك الاطّلاع على قسم استخدام الشبكات اللاسلكية في Android Debug Bridge كحل بديل.