Müzik Enstrümanı Dijital Arayüzü (MIDI), bilgisayarları müzik enstrümanları, sahne aydınlatması ve diğer zaman odaklı ortamlarla birbirine bağlamak için standart bir protokoldür.
Android 13'ten itibaren USB aktarımına MIDI 2.0 desteği eklendi. MIDI 2.0, 2020'de tanımlanan daha yeni bir MIDI standardıdır. Bu protokol, iki yönlü iletişim, daha yüksek çözünürlük ve özellik değişimi gibi özellikler ekler. MIDI desteği platformda etkinleştirildiğinde, USB ana bilgisayar modu aracılığıyla MIDI 2.0 her zaman etkinleştirilir.
Açıkçası, MIDI'nin sesle ilgisi yoktur. Ancak MIDI yaygın olarak müzikle birlikte kullanıldığından bu yazı ses bölümüne yerleştirildi.
NDK için MIDI
Android 10, MIDI kullanan profesyonel ses uygulamalarının Android platformuna taşınmasını kolaylaştırır.
Android MIDI uygulamaları genellikle Android MIDI hizmetiyle iletişim kurmak için
midi API'sini kullanır. MIDI uygulamaları, bir veya daha fazla
MidiDevice nesnesini keşfetmek, açmak ve kapatmak ve cihazın MIDI giriş ve çıkış bağlantı noktaları aracılığıyla her cihaza veri aktarmak için öncelikle
MidiManager sınıfına bağlıdır.
Taşımalar
MIDI 1.0'dan bu yana, USB üzerinden MIDI ve Bluetooth Düşük Enerji (BLE) üzerinden MIDI dahil olmak üzere ek aktarımlar tanımlanmıştır.
Android için MIDI
Android, bir Android cihazının USB çevre birimlerini çalıştırmak için bir USB ana bilgisayar görevi görmesine olanak tanıyan USB On-The-Go'yu destekler. USB ana bilgisayar modu API'leri, geliştiricilerin USB üzerinden MIDI'yi uygulama düzeyinde 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 itibaren cihaz üreticileri platformda isteğe bağlı MIDI desteğini etkinleştirebilir. Android doğrudan USB, BLE ve sanal (uygulamalar arası) aktarımları destekler. Android, harici bir adaptör aracılığıyla MIDI 1.0'ı destekler.
MIDI API'leri ile uygulama programlamaya ilişkin ayrıntılar için
android.media.midi paketine bakın.
Bu makalenin geri kalanında bir Android cihaz üreticisinin platformda MIDI desteğini nasıl etkinleştirebileceği anlatılmaktadır.
MIDI 1.0 aktarımlarını etkinleştirme
MIDI 1.0 uygulaması, USB ana bilgisayar modu ve USB çevre birimi modu aktarımları için ALSA'ya bağlıdır. ALSA, BLE ve sanal aktarımlar için kullanılmaz.
USB ana bilgisayar modu
USB ana bilgisayar modu için MIDI'yi etkinleştirmek üzere, öncelikle genel olarak USB ana bilgisayar modunu destekleyin ve ardından çekirdek yapılandırmanızda
CONFIG_SND_RAWMIDI ve
CONFIG_SND_USB_MIDI etkinleştirin. Bkz. Android Çekirdek Yapılandırması.
USB üzerinden MIDI aktarımı , USB Equipments Forum, Inc. tarafından yayınlanan MIDI Cihazları Sürüm 1.0 1 Kasım 1999 standardı için Evrensel Seri Veri Yolu Cihaz Sınıfı Tanımı tarafından resmi olarak tanımlanır.
USB çevre birimi modu
USB çevre birimi modu için MIDI'yi etkinleştirmek amacıyla,
drivers/usb/gadget/f_midi.c USB aygıt sürücüsüne entegre etmek için Linux çekirdeğinize yamalar uygulamanız gerekebilir. Bu yamalar Linux çekirdeğinin 3.10 sürümü için mevcuttur. Bu yamalar henüz ConfigF'ler (USB gadget sürücüleri için yeni bir mimari) için güncellenmedi ve yukarı akış kernel.org'da birleştirilmedi.
Yamalar, proje
kernel/common dal
android-3.10 çekirdek ağacı için taahhüt sırasına göre gösterilir:
- https://android-review.googlesource.com/#/c/127450/
- https://android-review.googlesource.com/#/c/127452/
- https://android-review.googlesource.com/#/c/143714/
Ayrıca aşağıdakilerden birini yapmanız gerekir:
- Ayarlar > Geliştirici seçenekleri > Ağ İletişimi'ne gidin ve USB Yapılandırmasını Seç iletişim kutusunda MIDI kutusunu işaretleyin.
- USB ana bilgisayarına bağlıyken ekranın üst kısmından aşağı doğru çekin, için USB girişini seçin ve ardından MIDI öğesini seçin.
BLE
Cihazın BLE'yi desteklemesi koşuluyla, BLE üzerinden MIDI her zaman etkindir.
Sanal (uygulamalar arası)
Sanal (uygulamalar arası) aktarım her zaman etkindir.
Özelliği talep etme
Uygulamalar,
android.software.midi özelliğini kullanarak MIDI desteğinin varlığını tarayabilir.
MIDI desteğini talep etmek için bu satırı
device.mk ekleyin.mk:
PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software. midi.xml
Özelliği talep etme gereksinimleri hakkında bilgi için Android Uyumluluk Tanımı Belgesine (CDD) bakın.
Ana makine modundayken hata ayıklama
USB ana makine modundayken, USB üzerinden Android Hata Ayıklama Köprüsü (adb) hata ayıklaması kullanılamaz. Alternatif olarak Android Debug Bridge'in Kablosuz kullanım bölümüne bakın.