by Robert Marsanyi

This page hosted by, makers of JSyn, the real-time audio synthesis API for Java.

JavaMIDI is a set of classes and a library that let you use a platform's MIDI capabilities from Java. JavaMIDI supports MIDI input and output and arbitrary-length system exclusive packets for Win32 platforms (Win95 and NT) and the Macintosh.

JavaMIDI may not be used in a commercial product without the written approval of Robert Marsanyi. This is a beta version for evaluation purposes only. We are not responsible for any damage you incur by using this package - use at your own risk. Standard disclaimers apply. If you use JavaMIDI in your own projects, you should include a credit for JavaMIDI, and a comment to the effect that. Robert Marsanyi retains the copyright.

JavaMIDI for Windows (PC)

Current version for PC is V05. V5 adds accurate input timestamping. V4 uses the JNI interface, and can filter out the annoying MIDI "active sensing" bytes.

Download the file containing source and binaries for PC. Read the README.txt file for installation instructions.

JavaMIDI for Apple Macintosh

The Mac version uses Opcode Systems' OMS. If you don't have OMS, you can download it here. Warning: the Macintosh version is likely to crash if you do NOT have OMS installed. Please install OMS before using MidiPort! We will try to upload a fix ASAP.

Download the 'C' and Java Source Code and compiled MIDIPort extension for Macintosh OMS using JNI, Java Native Interface. Ported by Tom Erbe.

Instructions for installing the Macintosh version are here.

Please note: If you are having problems using QuickTime5 and JavaMIDI on the same machine then please read this.


JavaMIDI reference docs can be read  here.


Older Source code for JavaMIDI for all machines is available here.

JavaMIDI was written by Robert Marsanyi. Send any feedback, bug messages, enhancement requests and so on toRobert at If you cannot reach Robert Marsanyi, then contact Phil Burk.

Also check out SUN's upcoming API for audio and MIDI.

Updated 4/25/01.