ControllerMate is a system that generates keyboard, mouse, and MIDI activity in response to triggers from gamepads, keypads, MIDI controllers, and other general-purpose input devices. It allows many types of devices to be used with software that would normally be compatible only with a keyboard, mouse, or MIDI source.
ControllerMate's internal devices generate activity based on a system of building blocks. Some building blocks respond to controls on input devices, other blocks trigger activity on ControllerMate's internal mouse and keyboard. Building blocks that implement timers, apply simple or complex logic, or perform basic math can also be created. Each individual building block performs a basic task, combinations of blocks can perform complex and creative functions.
ControllerMate is comprised of the ControllerMate application and the ControllerMateHelper background application. The ControllerMate application is used to view and edit the current building blocks and driver configurations. ControllerMateHelper is a background-only helper that is active only when ControllerMate is not running. When ControllerMate quits, the helper loads and implements the current programming. Except for the following differences, the behavior of ControllerMate and ControllerMateHelper is identical:
ControllerMate also includes a basic mouse and keyboard driver that is used for devices that do not use a manufacturer-specific or other custom driver. This driver can be configured to redefine controls such that they behave like different controls, or have no behavior at all. When used with a mouse, the driver can be assigned a custom mouse acceleration curve.