Android USB MIDI Driver

Build Status Android Arsenal

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.


  • 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.


  • 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.


Apache License, Version 2.0

Usb Midi Driver

USB MIDI Driver for Android 3.1 or later

Usb Midi Driver Info

⭐ Stars 255
🔗 Source Code
🕒 Last Update 8 months ago
🕒 Created 10 years ago
🐞 Open Issues 18
➗ Star-Issue Ratio 14
😎 Author kshoji