download midiStroke (52 KB)

midiStroke 1.4 is released! In addition to bug fixes midiStroke now remembers the last used MIDI source between sessions. Also, the source code for midiStroke has been released under the MIT License.

Michel Benita has localized midiStroke to make it easy to use with French keyboards. Download the French version (69 KB).

midiStroke converts midi note, program or CC messages into keystrokes. Any single midi message can trigger as many keystrokes as you like, in order. As one example, you could use one note on message to select all, copy, move to the right, paste, move right and paste again.

To create a trigger, first hit the plus button in the upper left corner. In the new row that is created, enter the note and channel numbers you want to use as a trigger. Selecting 0 for the channel means any channel will be accepted. Don't enter anything in the value column unless you are using a CC message for triggering. You can assign different keystrokes to be triggered by different CC values. Thus, CC #30 value 10 can trigger a different message than CC #30 value 127.

After creating a new row hit the plus button in the upper right hand corner. In the row created in the right hand table enter the keystroke you would like triggered along with checking any optional modifier boxes. Keep hitting the plus sign in the upper right hand corner to add more keystrokes to be triggered by the currently selected note. Below are a couple of examples:

screenshot of midiStroke triggering Delete

In the above screenshot, when note 45 on channel one is received, the delete key will be sent to whatever application is currently in focus. There is also a trigger assigned to note 46. When we highlight that row we see the following:

screenshot of midiStroke triggering Delete

In this shot we see that note 46 on channel one triggers a longer sequence. First, whatever his currently highlighted in the focused application is copied. Then the right arrow is pressed, and the content is pasted. This happens two more times. In Live, as an example, this would have the effect of copying the currently selected clip and pasting it into two adjacent tracks.

In both screenshots, you can see also see that CC 31 is triggering three different keystroke macros at value 20, 33 and 45. If you assign a value of -1 to the value, every CC value will trigger the corresponding keystroke for rapid triggering madness. CC 32 is an example of this.

The src pop-up menu allows you to choose the MIDI input to midiStroke. Help opens a help drawer, and keystrokes opens a drawer giving the text values for various special keys. Keystrokes are saved using a defaults system to User > Library > Application Support > midiStroke.

midiStroke 1.1 added the ability to use any midi keyboard as a full blown computer keyboard replacement. Look in the Preferences to assign notes to simulate the Shift, Option, Control and Command keys. When you press a note, the keypress is simulated. When you release it, the keyrelease is triggered. Version 1.1 also adds the number pad keys for triggering. Just leave these preferences blank if you don't want to use midiStroke as a keyboard replacement.

midiStroke is free and runs in Mac OSX 10.3 and higher.