Kỹ thuật số cho nhạc cụ Giao diện (MIDI) là một giao thức tiêu chuẩn để các máy tính kết nối với nhau có hỗ trợ âm nhạc nhạc cụ, ánh sáng sân khấu và các phương tiện định hướng thời gian khác.
Kể từ Android 13, phương thức truyền tải USB hỗ trợ MIDI 2.0. MIDI 2.0 là một phiên bản MIDI mới tiêu chuẩn xác định vào năm 2020. Giao thức này bổ sung các tính năng như giao tiếp hai chiều, quá trình phân giải và trao đổi tài sản. Chế độ hỗ trợ MIDI 2.0 qua USB luôn được bật khi hỗ trợ MIDI đã được bật trên nền tảng.
Nói một cách chính xác, MIDI không liên quan đến âm thanh. Nhưng vì MIDI thường được sử dụng với âm nhạc, bài viết này được đặt trong phần âm thanh.
MIDI cho NDK
Android 10 giúp bạn dễ dàng chuyển các ứng dụng âm thanh chuyên nghiệp sử dụng MIDI sang nền tảng Android.
AMidi
là một
API NDK cung cấp cho ứng dụng
các nhà phát triển có thể gửi và nhận dữ liệu MIDI có mã C/C++.
Các ứng dụng MIDI trên Android thường dùng API
midi
để giao tiếp với dịch vụ MIDI trên Android. MIDI
các ứng dụng chủ yếu dựa vào lớp
MidiManager
để khám phá, mở và đóng một hoặc nhiều
MidiDevice
truyền dữ liệu đến và đi từ từng thiết bị qua cổng đầu vào và đầu ra MIDI của thiết bị.
Phương tiện giao thông
Phương tiện vận tải thực lớp quy định trong MIDI 1.0 ban đầu là một vòng lặp hiện tại với Đầu nối DIN 5 chân.
Kể từ MIDI 1.0, chúng tôi đã xác định thêm các phương thức truyền tải khác, bao gồm cả giao thức MIDI qua USB và MIDI qua Bluetooth năng lượng thấp (BLE).
MIDI dành cho Android
Hỗ trợ Android USB khi di chuyển, cho phép thiết bị Android hoạt động như một máy chủ USB để điều khiển USB thiết bị ngoại vi. API chế độ máy chủ USB cho phép các nhà phát triển triển khai MIDI qua USB ở cấp ứng dụng, nhưng cho đến khi gần đây, chưa có API nền tảng tích hợp sẵn nào cho MIDI.
Kể từ bản phát hành Android 6.0 (Marshmallow), nhà sản xuất thiết bị có thể bật MIDI (không bắt buộc) trong nền tảng. Android hỗ trợ trực tiếp công cụ truyền tải USB, BLE và các phương thức truyền tải (liên ứng dụng) ảo. Android hỗ trợ MIDI 1.0 thông qua bộ chuyển đổi bên ngoài.
Để biết thông tin chi tiết về cách lập trình ứng dụng bằng API MIDI, hãy xem
android.media.midi
.
Phần còn lại của bài viết này thảo luận cách nhà sản xuất thiết bị Android có thể bật chế độ hỗ trợ MIDI trong nền tảng.
Bật tính năng truyền tải MIDI 1.0
Việc triển khai MIDI 1.0 phụ thuộc vào ALSA đối với chế độ máy chủ USB và việc truyền tải chế độ thiết bị ngoại vi USB. ALSA không được dùng cho BLE và các phương thức truyền tải ảo.
Chế độ hỗ trợ USB
Để bật MIDI cho chế độ hỗ trợ USB, trước tiên hãy hỗ trợ chế độ hỗ trợ USB nói chung và
sau đó bật CONFIG_SND_RAWMIDI
và CONFIG_SND_USB_MIDI
trong nhân của bạn
. Xem phần Cấu hình hạt nhân Android.
Phương thức truyền tải MIDI qua USB được xác định chính thức theo Định nghĩa lớp thiết bị cổng nối tiếp phổ quát cho thiết bị MIDI Bản phát hành 1.0 ngày 1 tháng 11 năm 1999 tiêu chuẩn được xuất bản bởi USB Implementers Forum, Inc.
Chế độ thiết bị ngoại vi USB
Để bật MIDI cho chế độ thiết bị ngoại vi USB, có thể bạn cần áp dụng bản vá
vào nhân hệ điều hành Linux của bạn để tích hợp drivers/usb/gadget/f_midi.c
vào tiện ích USB
trình điều khiển. Các bản vá này có cho phiên bản kernel của Linux
3,10. Các bản vá này chưa được cập nhật cho
ConfigF
(kiến trúc mới
cho trình điều khiển tiện ích USB) cũng như không được hợp nhất ở thượng nguồn
kernel.org.
Các bản vá được hiển thị theo thứ tự cam kết cho cây hạt nhân tại dự án kernel/common
nhánh android-3.10
:
- https://android-review.googlesource.com/#/c/127450/
- https://android-review.googlesource.com/#/c/127452/
- https://android-review.googlesource.com/#/c/143714/
Bạn cũng cần thực hiện một trong những việc sau:
- Chuyển đến phần Cài đặt > Tuỳ chọn cho nhà phát triển > Kết nối mạng và hãy đánh dấu vào hộp MIDI trong hộp thoại Select USB Configuration (Chọn cấu hình USB).
- Khi đã cắm vào máy chủ USB, hãy kéo xuống từ đầu màn hình, chọn mục nhập USB cho rồi chọn MIDI.
BLE
Luôn bật MIDI qua BLE, miễn là thiết bị hỗ trợ BLE.
Ảo (tương tác)
Quá trình truyền tải (liên ứng dụng) ảo luôn được bật.
Xác nhận tính năng
Các ứng dụng có thể sàng lọc sự hiện diện của hỗ trợ MIDI bằng cách sử dụng
Tính năng android.software.midi
.
Để yêu cầu hỗ trợ MIDI, hãy thêm dòng này vào device.mk
của bạn:
PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software. midi.xml
Xem Tài liệu định nghĩa về khả năng tương thích (CDD) với Android để biết thông tin về các yêu cầu để xác nhận quyền sở hữu tính năng.
Gỡ lỗi khi ở chế độ máy chủ lưu trữ
Khi ở chế độ máy chủ USB, bạn không thể sử dụng tính năng gỡ lỗi qua Cầu gỡ lỗi Android (adb) qua USB. Hãy xem Phần Sử dụng không dây trong Cầu gỡ lỗi Android để tìm giải pháp thay thế.