Google berkomitmen untuk memajukan ekuitas ras untuk komunitas kulit hitam. Lihat bagaimana.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

MIDI

Musical Instrument Digital Interface (MIDI) adalah protokol standar untuk menghubungkan komputer dengan instrumen musik, pencahayaan panggung, dan media berorientasi waktu lainnya.

Sebenarnya, MIDI tidak terkait dengan audio. Tetapi karena MIDI umumnya digunakan dengan musik, artikel ini ditempatkan di bagian audio.

MIDI untuk NDK

Android 10 memudahkan untuk port aplikasi audio profesional menggunakan MIDI ke platform Android.

AMidi adalah API NDK yang memberikan pengembang aplikasi kemampuan untuk mengirim dan menerima data MIDI dengan kode C / C ++.

Aplikasi Android MIDI biasanya menggunakan API midi untuk berkomunikasi dengan layanan Android MIDI. Aplikasi MIDI terutama bergantung pada kelas MidiManager untuk menemukan, membuka, dan menutup satu atau beberapa objek MidiDevice , dan meneruskan data ke dan dari setiap perangkat melalui port input dan output MIDI perangkat.

Transportasi

Lapisan transport fisik yang ditentukan dalam MIDI 1.0 asli adalah loop saat ini dengan konektor DIN 5-pin .

Sejak MIDI 1.0, transport tambahan telah ditentukan, termasuk MIDI melalui USB dan MIDI melalui Bluetooth Low Energy (BLE) .

MIDI untuk Android

Android mendukung USB On-The-Go , yang memungkinkan perangkat Android bertindak sebagai host USB untuk menggerakkan periferal USB. API mode host USB mengizinkan pengembang untuk mengimplementasikan MIDI melalui USB pada tingkat aplikasi, tetapi hingga saat ini belum ada API platform bawaan untuk MIDI.

Dimulai dengan rilis Android 6.0 (Marshmallow), pembuat perangkat dapat mengaktifkan dukungan MIDI opsional di platform. Android secara langsung mendukung transportasi USB, BLE, dan virtual (interapp). Android mendukung MIDI 1.0 melalui adaptor eksternal.

Untuk detail tentang pemrograman aplikasi dengan API MIDI, lihat paket android.media.midi .

Sisa dari artikel ini membahas bagaimana pembuat perangkat Android dapat mengaktifkan dukungan MIDI di platform.

Mengaktifkan transportasi

Implementasi MIDI tergantung pada ALSA untuk mode host USB dan transport mode periferal USB. ALSA tidak digunakan untuk BLE dan transport virtual.

Mode host USB

Untuk mengaktifkan mode host MIDI untuk USB, pertama-tama mendukung mode host USB secara umum, dan kemudian aktifkan CONFIG_SND_RAWMIDI dan CONFIG_SND_USB_MIDI dalam konfigurasi kernel Anda. Lihat Konfigurasi Kernel Android.

MIDI over USB transport secara resmi didefinisikan oleh Universal Serial Bus Device Definition untuk Rilis Perangkat MIDI 1.0 Nov 1, 1999 standar yang diterbitkan oleh USB Implementers Forum, Inc.

Mode periferal USB

Untuk mengaktifkan MIDI untuk mode periferal USB, Anda mungkin perlu menerapkan tambalan ke kernel Linux Anda untuk mengintegrasikan drivers/usb/gadget/f_midi.c ke driver gadget USB. Tambalan ini tersedia untuk kernel Linux versi 3.10. Tambalan ini belum diperbarui untuk ConfigFs (arsitektur baru untuk driver gadget USB), juga tidak digabung di upstream kernel.org .

Tambalan diperlihatkan dalam komit untuk pohon kernel di project kernel/common branch 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/

Anda juga perlu melakukan salah satu dari yang berikut:

  • Buka Pengaturan> Opsi pengembang> Jaringan dan centang kotak untuk MIDI di dialog Select USB Configuration.
  • Saat terpasang ke host USB, tarik ke bawah dari atas layar, pilih entri USB untuk , dan kemudian pilih MIDI .

BLE

MIDI over BLE selalu diaktifkan, asalkan perangkat mendukung BLE.

Virtual (interapp)

Transportasi virtual (interapp) selalu diaktifkan.

Mengklaim fitur

Aplikasi dapat menyaring keberadaan dukungan MIDI menggunakan fitur android.software.midi .

Untuk mengklaim dukungan MIDI, tambahkan baris ini ke perangkat device.mk :

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

Lihat Dokumen Definisi Kompatibilitas Android (CDD) untuk informasi tentang persyaratan untuk mengklaim fitur.

Debugging saat dalam mode host

Saat dalam mode host USB, debugging Android Debug Bridge (adb) melalui USB tidak tersedia. Lihat bagian Penggunaan Nirkabel Android Debug Bridge untuk alternatif.