Instrument muzyczny (cyfrowa) Interfejs (MIDI) to standardowy protokół służący do łączenia komputerów instrumenty, oświetlenie sceniczne i inne media o określonym czasie trwania.
W Androidzie 13 obsługa MIDI 2.0 została dodana do transportu USB. MIDI 2.0 to nowszy standard MIDI zdefiniowanych w 2020 r. Zapewnia on takie funkcje, jak komunikacja dwukierunkowa, regulaminu i wymiany nieruchomości. Tryb MIDI 2.0 przez USB jest zawsze włączony, jeśli obsługa MIDI jest włączone na platformie.
Ogólnie rzecz biorąc, MIDI nie ma związku z dźwiękiem. Ponieważ jednak MIDI jest powszechnie używana ten artykuł znajduje się w sekcji „Dźwięk”.
MIDI dla NDK
Android 10 ułatwia przenoszenie profesjonalnych aplikacji audio za pomocą MIDI.
AMidi
to
NDK API zapewniający aplikacji
wysyłanie i odbieranie danych MIDI za pomocą kodu w C/C++.
Aplikacje MIDI na Androida zwykle komunikują się z usługą Android MIDI za pomocą interfejsu API
midi
. MIDI
aby wykrywać, otwierać i zamykać jeden lub więcej elementów typu
MidiDevice
, aplikacje zależą głównie od klasy
MidiManager
obiektów i przekazywać dane do i z każdego urządzenia przez porty wejściowe i wyjściowe MIDI.
Transport
Fizyczny transport warstwa określone w oryginalnym MIDI 1.0 to pętla bieżącego parametru 5-stykowe złącze DIN.
Od wersji MIDI 1.0 zostały zdefiniowane dodatkowe sposoby przesyłania, w tym MIDI przez USB i MIDI ponad Bluetooth Low Energy (BLE).
MIDI na Androida
Funkcje obsługiwane przez Androida USB On-The-Go, Dzięki temu urządzenie z Androidem może działać jako host USB, urządzeń peryferyjnych. Interfejsy API w trybie hosta USB zezwalają wdrożenia MIDI przez USB na poziomie aplikacji, ale Ostatnio nie było żadnych wbudowanych interfejsów API platformowych dla MIDI.
Począwszy od Androida 6.0 (Marshmallow) producenci urządzeń mogą włączyć opcjonalne MIDI. na platformie. Android bezpośrednio obsługuje przesyłanie danych przez USB, BLE i wirtualne (interapp). Android obsługuje standard MIDI 1.0 przez zewnętrzną przejściówkę.
Szczegółowe informacje o programowaniu aplikacji za pomocą interfejsów MIDI API znajdziesz w
android.media.midi
pakietu SDK.
W pozostałej części tego artykułu omawiamy, jak producent urządzeń z Androidem może włączyć obsługę MIDI na platformie.
Włączanie transportu MIDI 1.0
Implementacja MIDI 1.0 zależy od protokołu ALSA w przypadku korzystania z trybu hosta USB i transportu między urządzeniami peryferyjnymi USB. Algorytm ALSA nie jest używany w przypadku BLE ani transportu wirtualnego.
Tryb hosta USB
Aby włączyć MIDI w trybie hosta USB, najpierw włącz ogólnie tryb hosta USB.
a następnie włącz CONFIG_SND_RAWMIDI
i CONFIG_SND_USB_MIDI
w jądrze
konfiguracji. Zobacz Konfiguracja jądra Androida.
Interfejs MIDI przez USB jest formalnie definiowany przez Definicja klasy uniwersalnej magistrali szeregowej dla urządzeń MIDI w wersji 1.0 1 listopada 1999 r. standard opublikowany przez USB Implementers Forum, Inc.
Tryb urządzenia peryferyjnego USB
Aby włączyć MIDI dla trybu urządzenia peryferyjnego USB, konieczne może być zastosowanie poprawek
do jądra Linuksa w celu integracji interfejsu drivers/usb/gadget/f_midi.c
z gadżetem USB
sterownika. Te poprawki są dostępne dla wersji jądra systemu Linux
3.10. Te poprawki nie zostały jeszcze zaktualizowane dla:
Pliki ConfigF
(nowa architektura
w przypadku sterowników gadżetów USB) ani nie są scalane ze strumieniami nadrzędnymi
kernel.org
Poprawki są wyświetlane w kolejności zatwierdzenia dla drzewa jądra w projekcie kernel/common
gałąź android-3.10
:
- https://android-review.googlesource.com/#/c/127450/
- https://android-review.googlesource.com/#/c/127452/
- https://android-review.googlesource.com/#/c/143714/
Musisz też wykonać jedną z tych czynności:
- Wybierz kolejno Ustawienia > Opcje programisty > sieci oraz zaznacz pole wyboru MIDI w oknie Wybierz konfigurację USB.
- Po podłączeniu hosta USB przesuń palcem z góry ekranu w dół i wybierz wpis USB dla, a następnie wybierz MIDI.
BLE
Tryb MIDI przez BLE jest zawsze włączony, o ile urządzenie obsługuje BLE.
Wirtualnie (interapp)
Transport wirtualny (interapp) jest zawsze włączony.
Zgłoszenie do funkcji
Aplikacje mogą sprawdzać obecność obsługi MIDI za pomocą
android.software.midi
funkcja.
Aby korzystać z obsługi MIDI, dodaj ten wiersz do urządzenia device.mk
:
PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software. midi.xml
Zobacz Dokument z definicją zgodności z Androidem (CDD) w celu uzyskania informacji na temat wymagań dotyczących korzystania z tej funkcji.
Debugowanie w trybie hosta
W trybie hosta USB debugowanie Android Debug Bridge (adb) przez USB jest niedostępne. Zobacz Sekcja Wykorzystanie sieci bezprzewodowej w narzędziu Android Debug Bridge.