MİDİ

Müzik Aleti Dijital Arabirimi (MIDI) müzik aletleri, sahne aydınlatması ve diğer zaman odaklı medya ile bilgisayarları birbirine bağlamak için bir standart bir protokoldür.

Kesin olarak konuşursak, MIDI sesle ilgisizdir. Ancak MIDI genellikle müzikle birlikte kullanıldığından, bu makale ses bölümüne yerleştirilmiştir.

NDK için MIDI

Android 10, MIDI kullanarak profesyonel ses uygulamalarını Android platformuna taşımayı kolaylaştırır.

AMidi bir olduğunu NDK API geliştiricilerine C / C ++ kodu ile MIDI veri göndermek ve almak için yeteneği verir.

Android MIDI genellikle kullanmak apps midi Android MIDI hizmeti ile iletişim kurmak için API. MIDI esas bağlıdır uygulamalar MidiManager açık keşfetmek için sınıf ve yakın bir veya daha fazla MidiDevice ve aygıtın MIDI giriş ve çıkış bağlantı noktaları üzerinden her aygıttan veri nesneleri ve geçmektedir.

Taşımalar

Fiziksel nakil katmanı orijinal MIDI 1,0 belirtilen bir akım döngüsü olan 5-pin DIN konnektör.

MIDI 1.0 kaldığından ilave nakliye USB üzerinden MIDI ve üzerinde MIDI dahil tanımlanmıştır Bluetooth Low Energy (BLE) .

Android için MIDI

Android destekleri Hareket Halinde USB USB çevre sürmek için USB host olarak çalışmaya bir Android cihaz izin verir. USB ana bilgisayar modu API'leri, geliştiricilerin uygulama düzeyinde USB üzerinden MIDI uygulamasına izin verir, ancak yakın zamana kadar MIDI için yerleşik platform API'leri yoktu.

Android 6.0 (Marshmallow) sürümünden başlayarak, cihaz üreticileri platformda isteğe bağlı MIDI desteğini etkinleştirebilir. Android, USB, BLE ve sanal (uygulamalar arası) aktarımları doğrudan destekler. Android, harici bir adaptör aracılığıyla MIDI 1.0'ı destekler.

MIDI API'ler ile uygulama programlama hakkında ayrıntılı bilgi için bkz android.media.midi paketi.

Bu makalenin geri kalanında, bir Android cihaz üreticisinin platformda MIDI desteğini nasıl etkinleştirebileceği tartışılmaktadır.

Taşımaları etkinleştirme

MIDI uygulaması, USB ana bilgisayar modu ve USB çevresel mod taşımaları için ALSA'ya bağlıdır. ALSA, BLE ve sanal aktarımlar için kullanılmaz.

USB ana bilgisayar modu

Genel olarak USB ana modunda, ilk destek USB ana modu için MIDI etkinleştirin ve sonra etkinleştirmek için CONFIG_SND_RAWMIDI ve CONFIG_SND_USB_MIDI sizin çekirdek yapılandırmasında. Bkz Android Kernel Configuration.

MIDI USB üzerinden ulaşım resmen tarafından tanımlanır MIDI Cihazlar Yayın 1,0 1 Kasım 1999 için Evrensel Seri Veri Yolu Aygıt Sınıfı Tanımı tarafından yayınlanan standart USB Implementers Forum, Inc .

USB çevre birimi modu

USB periferik modu için MIDI etkinleştirmek için, entegre Linux kernel yama uygulamaları gerekebilir drivers/usb/gadget/f_midi.c USB aygıtı sürücüsü içine. Bu yamalar Linux çekirdeği sürüm 3.10 için mevcuttur. Bu yamalar henüz için güncellenmemiş ConfigFs (USB aygıtı sürücüleri için yeni bir mimari), ne de memba de birleştirilir kernel.org .

Yamalar projesi en çekirdek ağaç için sipariş taahhüt gösterilmektedir kernel/common dal 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/

Ayrıca aşağıdakilerden birini yapmanız gerekir:

  • Ayarlar> Geliştirici seçenekleri> Networking gidin ve Seç USB Yapılandırma iletişim MIDI kutusunu işaretleyin.
  • USB ana bilgisayara bağlı iken, ekranın üst tarafından aşağı çekin için giriş USB seçin ve sonra MIDI seçin.

BLE

Cihazın BLE'yi desteklemesi koşuluyla, BLE üzerinden MIDI her zaman etkinleştirilir.

Sanal (interapp)

Sanal (uygulamalar arası) taşıma her zaman etkindir.

Özelliği talep etme

Uygulamalar kullanarak MIDI desteği varlığı için görüntüleyebilecek android.software.midi özelliğini.

MIDI desteği hak talebinde bulunmak için bu satırı ekleyin device.mk :

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

Bkz Android Uyumluluk Tanımı Belgesi (CDD) özelliğini iddia gereksinimleri hakkında bilgi almak için.

Ana bilgisayar modundayken hata ayıklama

USB ana bilgisayar modundayken, USB üzerinden Android Hata Ayıklama Köprüsü (adb) hata ayıklama kullanılamaz. Bkz Kablosuz kullanım bir alternatif Android Debug Bridge bölümünü.