OrderedBytes
ControllerMate
ControllerMate v4

ControllerMate is a controller programming tool that allows you to customize the behavior of your HID devices — keyboards, keypads, mice, trackballs, joysticks, gamepads, throttles, among others. ControllerMate’s philosophy is to be as flexible as possible, to provide a set of basic programming tools, and to allow the user to combine those tools in an endless variety of ways.

Controller programming — A new approach

ControllerMate programming is done in two ways: combining various building blocks to create the function that you want to perform, or by creating a controller configuration for your particular device. Building blocks are little nuggets of functionality which can be customized and combined with other building blocks to create complex functions. Controller configurations allow you to redefine the default behavior of your keyboard and mouse devices.

Building functions, one block at a time

ControllerMate building blocks are used to add functionality to the controls on devices. Currently, there are more than 50 different kinds of building blocks. Each type performs a different function. There are blocks which represent device controls (buttons, axes, hatswitches) which are used to trigger a function. There are blocks which perform keyboard functions (typing text, simulating keyboard keys). There are blocks which perform mouse functions (moving the cursor, simulating a mouse button or scroll wheel). There are yet other blocks which exist just to allow building blocks to be combined in interesting ways using logic (AND, OR, NOT, XOR).

Rewired drivers

Controller configurations can be used to change the default behavior of keyboard and mouse devices. All buttons on keyboards have some default function or another. Most are useful — some are not. A controller configuration allows you to make one button on a keyboard act like another, or turn it off buttons entirely. (Q: What good is a button which does nothing? A: It is still available to be used with building blocks.) In addition to redefining buttons, a controller configuration for a mouse can have a custom acceleration curve. This curve can be one of the standard curves, or can be one entirely of your own creation.(1)

Virtual devices

ControllerMate allows you to create virtual mouse, tablet and joystick devices. These are devices that are created entirely by you, but applications will see them just like the devices that you have plugged into your computer. Using ControllerMate’s building blocks and controller configurations, you can control every move that these virtual devices make. Among other uses, you can use a virtual device to turn a joystick into a full-featured mouse.

ControllerMate for X–keys

Owners of X–keys devices from P. I. Engineering have the option of using ControllerMate for X–keys, a custom version of ControllerMate that is compatible only with X–keys devices. ControllerMate for X–keys can be downloaded for free and does not require registration. Users of ControllerMate for X–keys can upgrade to the full version of ControllerMate while keeping all of their programming.

ControllerMate Helper v4

Out of Sight, Never Out of Reach

ControllerMate includes a small helper application which runs in the background. It monitors your controllers and performs your programming when the ControllerMate application is not running. Once you have finished editing your programming, quit the ControllerMate application and the background application takes over. No graphics, no user interface, no unnecessary processor cycles.

  1. Controller configurations are available only when running Mac OS X 10.4 or newer, and for devices that use the default drivers. Controller configurations cannot be created for devices that use custom drivers.

Features at a glance

50+ different types of building blocks

  • Source — represent controls on devices
  • Output — create keyboard or mouse output
  • AppleScript — run AppleScripts
  • Logic — combine ON/OFF values
  • Basic Math — perform basic arithmetic
  • Calculation — perform complex calculations
  • Timer — provide timing functions

3 different types of virtual devices

  • Mouse — control the movement of the cursor
  • Tablet — control the position of the cursor
  • Joystick — create a custom gaming device

Application-specific programming

Collect related programming together in groups. Enable these groups based on whether a particular application is running — or not running.

In-line help

Detailed help book pages covering every aspect of ControllerMate. Quick Help notes in the Inspector window for each building block. Tool tips for every user-interface element.

Multiple identical devices

ControllerMate handles multiple identical devices seamlessly. Each device is identified by the order in which it is attached to the computer.

Compatibility

As downloaded, ControllerMate is compatible with many types of HID devices. For some devices (primarily keyboards and devices that act like keyboards), ControllerMate's compatibility can be improved by importing a downloadable Controller Type file.

See the ControllerMate Compatibility pages for more information.

Free Download

ControllerMate may be freely downloaded and evaluated to find out whether or not it meets your needs.

Register your copy

Registration of ControllerMate v4 costs US$15.00. Once registered, ControllerMate will not limit the number of building blocks you can create.