11

Been searching google for a midi library for android.Nothing seems to promising.

Anyone know of some midi libraries for Android?

james
  • 2,595
  • 9
  • 43
  • 70
  • possible duplicate of [MIDI on Android: Java and/or AIR libraries](http://stackoverflow.com/questions/2914188/midi-on-android-java-and-or-air-libraries) – Matt Ball May 30 '11 at 02:59
  • Looks like you're checking out that library in the accepted answer - if you use it I would love some feedback on how it could be better or easier to use, or what features it should have but doesn't. Just leave a comment on the answer if you have any questions or feedback. – LeffelMania Nov 06 '11 at 18:46

4 Answers4

8

According to the list of supported media types in the Android docs, MIDI playback support is built in. To play MIDI, you can use a JetPlayer. More details are in the JETCreator User Manual.

Ted Hopp
  • 232,168
  • 48
  • 399
  • 521
4

This is a simple but great sample application that successfully streams MIDI on Android https://github.com/billthefarmer/mididriver

You will have to put your MIDI messages together manually though ( the example creates two MIDI messages for play note and stop note). One can refer to the MIDI specification to further control the MIDI channels. The problem is that the default sound fonts on Android sound so bad.

ABT
  • 337
  • 2
  • 10
3

There's a bare bones Java MIDI library here on Google Code, source and all:

http://code.google.com/p/android-midi-lib/

It won't do any sound playback, but you can read, modify, and write MIDI files with fairly high-level method calls.

LeffelMania
  • 12,765
  • 4
  • 32
  • 34
1

If you are talking sending MIDI messages or receiving MIDI messages over a communication channel, we have several options to be starting from. 1) Bluetooth 2) USB-host 3) WiFi etc.

I have tried developing a MIDI driver using the USB-host capability and it is currently placed along with my open application, XY controller for MIDI. https://github.com/MIDIeval/MIDIeval/tree/master/Imperi0usB/MIDIeval

You can use the code to send MIDI signals over a USB link. I have successfully triggered Note ON/OFF messages and developed the XY controller to control performance in real time. eg) Sweeping the cut-off or performing fade-in/out.

The problem that I see with it is, Android does not support isochronous transfers over USB, thereby, limiting us in terms of latency of transmission. The USB transfer is happening in Bulk Transfer mode which does not guarantee low latency as it waits for the acknowledgment.

Xenerberg
  • 11
  • 2