Skip to content
Jim Menard edited this page May 2, 2026 · 3 revisions

KeyMaster

Welcome. Welcome. Welcome.

-- The entire Ig Nobel awards ceremony welcoming speech

KeyMaster is a MIDI processing and patching system. It allows a musician to reconfigure a MIDI setup instantaneously and modify the MIDI data in real time.

With KeyMaster a performer can split controlling keyboards, layer MIDI channels, transpose them, send program changes and System Exclusive messages, map and filter controllers, and much more. With a computer keypress or mouse click or the stomp of a foot switch (or any other MIDI event), an entire MIDI system can be totally reconfigured.

KeyMaster lets you describe songs, which are lists of patches that make connections between instruments. Those connections can send program changes, set keyboard splits, transpose, send, remap, or limit volume or other controller changes --- all in real time.

Set lists let you organize songs into set lists for live performance or in the studio.

Any incoming MIDI message can trigger an action such as moving to the next or previous patch or song. For example, you can tell KeyMaster to move forward or backward based on controller values coming from foot switches or an instrument's buttons.

Any array of MIDI commands can be stored as a named message which can be sent via a trigger, a key press, or from any filter.

A master MIDI clock is sent to all outputs when it is running. The tempo can be set per song.

A software panic button turns off any stuck notes.

KeyMaster is cross-platform: it should run on Mac OS X, Linux, and Windows.

KeyMaster is by Jim Menard. It is a faster C++ version of PatchMaster. The Github repo is here.

Requirements

  • JUCE (the JuceLibraryCode/ directory is included in the repository)
  • Xcode (macOS) with the Command Line Tools package, or an equivalent C++ compiler on other platforms
  • The make program

Installation

On macOS, install Xcode or the Xcode Command Line Tools. Then clone the repository and build:

make build

You can also open Builds/MacOSX/KeyMaster.xcodeproj directly in Xcode and build from there.

Other useful make targets:

make run          # build and launch KeyMaster
make build-tests  # build the test suite
make test         # build and run the test suite
make clean        # remove build artifacts

Running KeyMaster

Launch KeyMaster from the Finder or with make run. If no project file is open, KeyMaster scans your system for all attached MIDI devices and creates a set of starter songs that link them together in various combinations.

Use File → Open to load an existing project, or File → New Project to start from scratch.

Saves

KeyMaster projects are saved as JSON files with the .kmst extension.

More Information

See the Sidebar.

Clone this wiki locally