nmj Network MIDI for Android™

nmj is a low-level Android™ MIDI solution that can provide MIDI functionality to Android systems from version 2.2 onwards.

It is compatible with

  • RTP MIDI (as specified in RFC 4695 and implemented in Apple's Network MIDI in OS X)
  • ipMIDI
  • Class-compliant Usb MIDI interfaces
  • The HTML5 WebSocket specification
  • and more...

The library provides a user defineable number of MIDI connections and is fully configureable through a simple java api. Latest versions contain a complete MidiDeviceService implementation to simplify integration with Android 6's new MIDI api.

nmj is directly compatible with these fine network MIDI drivers for PC-side applications:

rtpMIDI (Tobias Erichsen's Windows implementation of RFC 4695 and Apple's session initialization protocol)
OS X's MIDI Network driver (and its iOS implementation in MIDINetworkSession)
ipMIDI (Multicast MIDI for Windows and OS X by nerds.de)
qmidinet & multimidicast (Multicast MIDI for Linux)
our mnet driver, a 32 / 64 bit MIDI driver for Windows and Mac OS X that supports all of the library's connection methods.

The library is under ongoing development. The version available here may at times not be fully up to date and may differ from what is currently used in TouchDAW - nmj's demo and road hardening app - in details. It should be fine to get started though. Please check back for updates or contact us directly. Thank you.

download nmj 0.92

Creative Commons License

Released under
Creative Commons Attribution-NonCommercial-NoDerivs 3.0



DirectShow and Windows are trademarks of Microsoft Inc.
Apple, Mac, Mac OS X and CoreMIDI are trademarks of Apple Computer Inc.
Java is a registered trademark of Oracle and/or its affiliates.
Android is a trademark of Google Inc.