Musikinstrument – Digital Interface (MIDI) ist ein Standardprotokoll zur Verbindung von Computern mit Musik Instrumente, Bühnenbeleuchtung und andere zeitorientierte Medien.
Ab Android 13 wird MIDI 2.0 für den USB-Transport unterstützt. MIDI 2.0 ist eine neuere MIDI-Datei. der 2020 definiert wurde. Dieses Protokoll bietet Funktionen wie die Zwei-Wege-Kommunikation, eine höhere Lösungsfindung und Immobilienaustausch. MIDI 2.0 über USB-Hostmodus ist immer aktiviert, wenn MIDI-Unterstützung auf der Plattform aktiviert ist.
Genau genommen hat MIDI nichts mit Audio zu tun. Da MIDI jedoch häufig Musik findest du diesen Artikel im Bereich „Audio“.
MIDI für NDK
Mit Android 10 lassen sich professionelle Audio-Apps leichter übertragen mit MIDI zur Android-Plattform.
AMidi
ist ein
NDK API, die einer App
zum Senden und Empfangen von MIDI-Daten mit C/C++ Code.
Android MIDI-Apps verwenden normalerweise die
midi
API, um mit dem Android MIDI-Dienst zu kommunizieren. MIDI
Apps hängen hauptsächlich von der
MidiManager
-Klasse ab, um eine oder mehrere
MidiDevice
zu erkennen, zu öffnen und zu schließen
-Objekten erstellt und über die MIDI-Ein- und -Ausgabeports des Geräts Daten an und von jedem Gerät übergeben.
Transport
Das physische Verkehrsmittel Ebene MIDI 1.0 ist eine aktuelle Schleife mit 5-poliger DIN-Anschluss.
Seit MIDI 1.0 wurden zusätzliche Transporte definiert, einschließlich MIDI über USB. und MIDI Over Bluetooth Low Energy (BLE)
MIDI für Android
Android unterstützt USB-Unterwegs, Damit kann ein Android-Gerät als USB-Host fungieren, um USB Peripheriegeräten. Die APIs im USB-Hostmodus ermöglichen MIDI über USB auf Anwendungsebene implementieren, Seit Kurzem gibt es keine integrierten Plattform-APIs für MIDI.
Ab Android 6.0 (Marshmallow) können Gerätehersteller optionales MIDI aktivieren. auf der Plattform. Android unterstützt direkt USB-, BLE- und virtuelle (App-intern) Übertragungen. Android unterstützt MIDI 1.0 über einen externen Adapter.
Weitere Informationen zur Anwendungsprogrammierung mit den MIDI-APIs finden Sie in der
android.media.midi
Paket.
Im weiteren Verlauf dieses Artikels geht es darum, wie der Hersteller von Android-Geräten MIDI-Unterstützung auf der Plattform aktivieren
MIDI 1.0-Transporte aktivieren
Die MIDI 1.0-Implementierung hängt bei der Übertragung im USB-Hostmodus und im USB-Peripheriemodus von ALSA ab. ALSA wird nicht für die BLE- und virtuellen Transporte verwendet.
USB-Hostmodus
Um MIDI für den USB-Hostmodus zu aktivieren, müssen Sie zuerst den USB-Hostmodus allgemein unterstützen und
Aktivieren Sie dann CONFIG_SND_RAWMIDI
und CONFIG_SND_USB_MIDI
in Ihrem Kernel
Konfiguration. Siehe Android-Kernel-Konfiguration.
Der MIDI über USB wird formal durch die <ph type="x-smartling-placeholder"></ph> Universal Serial Bus Device Class Definition für MIDI Devices, Version 1.0, 1. November 1999 vom USB Implementers Forum, Inc.
USB-Peripheriemodus
Um MIDI für den USB-Peripheriemodus zu aktivieren, müssen Sie möglicherweise Patches anwenden.
an Ihren Linux-Kernel, um drivers/usb/gadget/f_midi.c
in das USB-Gadget zu integrieren
. Diese Patches sind für die Linux-Kernel-Version verfügbar.
3:10. Diese Patches wurden noch nicht aktualisiert für
ConfigFs
(eine neue Architektur,
für USB-Gadget-Treiber) und werden auch nicht in Upstream-
kernel.org
Die Patches werden in der Commit-Reihenfolge für die Kernel-Struktur im Projekt kernel/common
angezeigt.
Zweig android-3.10
:
- https://android-review.googlesource.com/#/c/127450/
- https://android-review.googlesource.com/#/c/127452/
- https://android-review.googlesource.com/#/c/143714/
Führen Sie außerdem einen der folgenden Schritte aus:
- Gehen Sie zu Einstellungen > Entwickleroptionen > Networking und Aktiviere im Dialogfeld „USB-Konfiguration auswählen“ das Kästchen für MIDI.
- Ziehen Sie die Verbindung zum USB-Host vom oberen Bildschirmrand nach unten und wählen Sie den Eintrag USB für und wählen Sie dann MIDI aus.
BLE
MIDI over BLE ist immer aktiviert, vorausgesetzt das Gerät unterstützt BLE.
Virtuell (Interapp)
Der virtuelle (App-interne) Transport ist immer aktiviert.
Funktion beanspruchen
Apps können das Vorhandensein von MIDI-Unterstützung mithilfe der
Funktion „android.software.midi
“.
Um MIDI-Unterstützung in Anspruch zu nehmen, fügen Sie diese Zeile zu Ihrem device.mk
hinzu:
PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software. midi.xml
Weitere Informationen finden Sie in der Android Compatibility Definition Document (CDD) für weitere Informationen zu den Voraussetzungen, um die Funktion nutzen zu können.
Fehlerbehebung im Hostmodus
Im USB-Hostmodus ist die Android Debug Bridge-Fehlerbehebung (ADB) über USB nicht verfügbar. Siehe WLAN-Nutzung von Android Debug Bridge als Alternative.