USB MIDI Driver

Additional

Language
Java
Version
v0.1.8 (Dec 5, 2023)
Created
Apr 13, 2012
Updated
Dec 4, 2023
Owner
Kaoru Shoji (kshoji)
Contributors
Kaoru Shoji (kshoji)
willardvandelft
Victor Diaz (victordiaz)
Markus (mmichler)
akapelrud
Moti Zilberman (motiz88)
Amitay Dobo (amitayd)
Chen Zhang (chenzhang22)
Neil Agarwal (regalstreak)
9
Activity
Badge
Generate
Download
Source code

Android USB MIDI Driver

USB MIDI Driver using Android USB Host API

  • No root privilege needed.
  • Supports the standard USB MIDI devices; like sequencers, or instruments.
  • Supports some non-standard USB MIDI (but protocol is compatible with USB MIDI) devices.
    • YAMAHA, Roland, MOTU, or other makers' devices listed on device_filter.xml can be connected.
  • Supports multiple device connections.
  • Has javax.sound.midi compatible classes.

Requirement

  • Android : OS version 3.1(API Level 12) or higher, and have an USB host port.
    • The android Linux kernel must support USB MIDI devices. Some Android device recognizes only USB-HID and USB-MSD by kernel configurations.
  • USB MIDI (compatible) device

the optional thing:

  • The self powered USB hub (if want to connect multiple USB MIDI devices).
  • USB OTG cable (if the Android device has no standard USB-A port).
  • USB MIDI <--> Lagacy MIDI(MIDI 1.0) converter cable (if want to connect with legacy MIDI instruments).

Repository Overview

  • Library Project : MIDIDriver

    • The driver for connecting an USB MIDI device.
  • Sample Project : MIDIDriverSample

    • The sample implementation of the synthesizer / MIDI event logger.
    • Pre-compiled sample project is available on Google Play Market.

Library Project Usages

See the project wiki for the library usages.

FAQ

  • What is the 'cable' argument of "onMidi..." or "sendMidi..." method?
    • A single USB MIDI endpoint has multiple "virtual MIDI cables". It's used for increasing the midi channels. The cable number's range is 0 to 15.
  • The application doesn't detect the device even if the USB MIDI device connected.

License

Apache License, Version 2.0