mmj tagged posts

Java SysEx programming

Category: MusicTech Comments: One comment

I’m taking my first steps into the world of JavaSound programming. The first thing I learned is that the Snow Leopard default javax.sound.midi.spi implementation is buggy when it comes to SysEx message transmission. For the time being I’m sticking with the MMJ library instead.

As an example, I’ve been trying to send a “SID Skip Patch” command to my SID station. The SysEx message for this command is F0 00 20 3C 01 00 03 F7.

The following code shows how to construct this message in Java (example based on at

String s = "F000203C010003F7";
int n = s.length() / 2;
byte[] msg = new byte[n];
for (int i = 0; i < n; i++) {
    msg[i] = (byte) Integer.parseInt(
    s.substring(i * 2, i * 2 + 2), 16);

The next step is to send the resulting byte array to a MIDI out...

Read More