Confusion Studios LLC
Mjdj MIDI Morph is a free MIDI platform for Windows, OSX and Linux written in Java. MIDI Morphs (think “processors” or “translators”) are written in Java against the Mjdj API: they can respond to MIDI input and produce MIDI output. Mjdj is battle-tested, extremely flexible, and 100% written in Java.

What’s a MIDI Morph? – Morphs process MIDI input and produce MIDI output. For example, you have a MIDI Control Surface that talks to your DAW (e.g., Ableton Live, or Traktor), but you want to use a knob and a button to control several knobs in a non-standard way. When you turn your knob up, you want some to go up, others to go down, and you want that to invert when you press your button. Morphs turn your MIDI control surfaces and devices into custom controllers and instruments.
Beyond MIDI? – Mjdj Morphs can respond to MIDI and produce MIDI. Mjdj also has built-in support for responding to MIDI clock, as well as for typing keystrokes. However, since your morphs are written in Java, they can respond to anything a Java program can respond to: network input, changes in a file system, time-based events, weather changes (you just need the right API). On the output side, the same thing is true: Besides sending MIDI messages and typing keystrokes, morphs can also do anything that a Java program can do: upload, download, tweet, make network connections… the sky’s the limit!
What’s Wrong With Bomes MIDI Translator? – Nothing at all! I’ve purchased and used the most popular MIDI Translator in my musical “rig.” I found its pseudo-programming language to be clumsy, though the GUI is nice. Also, it cannot respond to MIDI clock, so you cannot say, “once you get this MIDI message, in 3 16th notes send this other one.” These two limitations (and the fact that it costs over $75 for the OSX version) made me decide to write Mjdj MIDI Morph.
What about PureData? – PureData uses a completely different paradigm for MIDI manipulation. Most importantly for programmers who know Java, Ruby, or Python (or any other language that runs on the JVM), Mjdj MIDI Morph allows you to utilize your current skill set and all known Java tools, including realtime debuggers, code-analyzers and loggers. Java has been road-tested in a variety of situations, from huge corporate processing systems to embedded systems. Now that Java has MIDI support on all three major platforms (Linux, OSX and Windows), it’s even more compelling.
Features
- Morph – Mjdj morphs can produce MIDI output, keystroke presses, and do anything else that Java can do. Morphs usually respond to to MIDI input. A knob on your MIDI control surface can cause several knobs to turn in your DAW, for instance, or one knob can change function depending on other knobs or buttons.
- Beatlocked Tasks – You can schedule MIDI tasks, keystroke presses, or anything else that Java can do to happen on the next beat, 16 beats from now, or whenever and whatever you want.
- Sync – Mjdj can synchronize to a MIDI Beat Clock coming from another program, such as Ableton Live, or from an external MIDI source.
- Pure Java – Since Mjdj morphs are written in Java, they can be complex and interesting programs in their own right, complete with full user interfaces (written with any Java UI framework). As first-class Java citizens, they can do anything any Java program can do, including disk access, database access, network access, and use third-party libraries for voice and gesture recognition.
- Open Source – Mjdj MIDI Morph is released under the GPL 3.0, and the Mjdj API is released under the GPL 3.0 with Classpath Exception. The GPL means that you can rest assured that the program and source code is free and always available, so it’s a stable foundation for your development. The GPL with Classpath Exception means that you can write, sell and distribute morphs written against the Mjdj API with no restrictions whatsoever.
Download
Download a copy of the software.
Learn More
To learn more about Mjdj and make a simple MIDI morph, click here.
Support Development
This software is 100% user-supported. If you find Mjdj to be useful, please consider donating money. Donations keep the development of this product moving forward. Also, if you use Mjdj MIDI Morph for any projects, please mention it (for instance, on the liner notes for your next album).