Joy2Midi

Software Joystick (DirectInput) to MIDI Adapter for Windows

Introduction
This is a translator application that will grab events from a DirectInput compatible joystick controller and generate MIDI commands. It can be used to control MIDI-compatible hardware or software. It's very flexible, allowing you to define your own input events and their associated MIDI commands.

Screenshots


Changelog
v0.3 - Rewritten most of the engine; much more flexible then before
     - Rewritten most of the GUI again
     - Tons of new features and misc improvements

v0.2 - Redesigned the GUI
     - Added Note and Slider events

v0.1 - Initial Public Release
Download
Download Joy2Midi v0.3 Executable (includes sample .J2M for a 4-button, 2 axis analog stick)
v0.3 Source Code (Borland Delphi 7; GPL)

Getting Started
If you want to control MIDI software from a joystick, you will need to install a MIDI-loopback device first. Midi Yoke is recommended, you can download it from http://www.midiox.com/index.htm?http://www.midiox.com/myoke.htm and follow the installation instructions for your OS (may require a re-boot).

When you're done, launch joy2midi. Select "DirectInput Joystick" and click Open. You should now see events when you move the joystick around and press buttons. Select the desired output channel (such as MIDI Yoke 1), and click Open. Events are now being translated between the two. If some axis are too sensitive, or not sensitive enough, click Calibrate and adjust the dead zones. You'll need to close and re-open the stick for the settings to take effect.

Joy2Midi is based upon 'Events'.. an Event can be a button (Button1), or some sort of action (such as Left). Every command has On and Off checks. For an event to go "On" all the on checks must be satisfied. For example, for the Button1 event, the on checks are New Button1=128 and Old Button1=0 .. 128 is the DirectInput code for pressed. Conversely, the off checks are New Button1=0, Old Button1=128..

The left and right checks are a little more complicated, and thus no default are set. Load the included J2M file for a sample of one way to set those up..

To go along with events are commands, such as MIDI sliders, notes, etc. You may assign as many commands as you like to either the On or Off state of any event, but be warned that commands will run sequentially.

To give it a try quick, Click the => button between the input and output select to open up the Event Manager window. To use it, first select the joystick event (Button 1 for example), and wether you want to map commands to the On or Off events. Then, right click in the empty list below it and choose Add, Note Event. Select Note On, and pick a note (velocity is how hard the note is hit, from 1-127). Now Select Button 0 Up, chose Add, Note Event again, Select Note Off, and pick the same note.

You should now configure your MIDI program to listen on the MIDI Yoke 1 input, and press Button 0 on the Joystick. If all went well, you should hear a note while you're holding the button.

You can also add slider events (useful for controlling software) as well as custom MIDI events (visit http://www.borg.com/~jglatt/tech/midispec.htm or click Reference), see the included J2M for a sample of how to use sliders.

Contact
Think this software is neat? Have ideas, comments or problems? E-mail kRYPT (krypt@mountaincable.net)