MIDI

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 zusätzliche Funktionen wie die Zwei-Wege-Kommunikation, 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 die Möglichkeit haben, MIDI-Daten mit C/C++ Code zu senden und zu empfangen.

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:

  1. https://android-review.googlesource.com/#/c/127450/
  2. https://android-review.googlesource.com/#/c/127452/
  3. 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 welche Voraussetzungen erfüllt sein müssen, 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.