Features Compatibility X-keys Documentation Examples

ControllerMate v4.8

ControllerMate v4.8.3

September 5, 2014

Compatible with Mac OS X 10.9, 10.8, 10.7, and 10.6 (64-bit)
ControllerMate v4.5.3 can be used with Mac OS X 10.4/10.5 and Mac OS X 10.6 (32-bit)
Building Blocks

Building functions, one block at a time

ControllerMate building blocks are triggered by controls on devices or MIDI messages. Each type of building block performs a small task. Building blocks can be combined to perform complex functions.

ControllerMate now includes more than 70 types of building blocks!

Some building blocks respond directly to controls on devices. Others perform logic, math, or timing. Yet other blocks trigger activity on ControllerMate's virtual mouse or keyboard, perform AppleScripts, open files, or launch applications. The possibilities are virtually limitless.

Driver configuration

Reconfigure drivers

Driver configurations can be used to change the default behavior of a keyboard or mouse that uses ControllerMate's driver.

All buttons on a keyboard have some default function or another. Most are useful, some are not. A driver configuration allows one button on a keyboard act like another, or can turn a button off completely. Buttons that have been turned off can still be used to trigger building blocks.

A driver configuration for a mouse can include a custom acceleration curve. This curve can be one of the standard curves, a standard curve with an adjusted speed or sensitivity, or an entirely custom curve created point by point.

Multiple configurations can be created for the same keyboard or mouse — use building blocks to control when a configuration is active.

MIDI Messages

MIDI in, MIDI out

MIDI messages can now trigger building blocks just as easily as buttons on a joystick, mouse, or keypad. MIDI notes, controller values, or patch changes can be used.

ControllerMate can also create and send MIDI messages through a virtual MIDI source. This allows generic input devices to be used to control applications that listen to ControllerMate's virtual MIDI source.

Virtual Devices

Virtual devices

ControllerMate can create virtual mouse, tablet, and joystick devices that are controlled by ControllerMate programming. The virtual devices are seen by most other applications just as though they were actual devices.

Every move that a virtual device makes is controlled using ControllerMate's building blocks and driver configurations.

ControllerMate Helper v4.6 Icon

Out of sight, never out of reach

ControllerMate includes a helper application that runs in the background, monitors the attached controllers, and performs the current programming when the ControllerMate application is not running.

After you have finished setting up your building blocks and driver configurations, quit the ControllerMate application and the background application takes over. No graphics, no user interface, no unnecessary processor cycles.

Free to try

Free to try!

ControllerMate is compatible with many types of devices and can perform a wide variety of tasks. Give ControllerMate a try to find out if it will work for you, risk free, and with no time limit.

When ControllerMate is used without registration there will be a limit of 10 building blocks that generate output (keyboard or mouse activity, MIDI messages, AppleScripts, etc.). Building blocks that respond to controls or MIDI messages, perfom logic, math, or timing can be created in unlimited numbers. This should give you a good opportunity to find out how ControllerMate works and if it will work for you.

ControllerMate v4.7 Icon

New in ControllerMate v4.8.3

ControllerMate v4.8.3 adds compatibility with a new device and fixes a bug:

  • Compatibility with the X-keys XK-3 Switch Interface has been added.
  • Fixed a bug that could cause no file to be written when attempting to export programming.

New in ControllerMate v4.8.2

  • Orbweaver — Added compatibility with the key backlight LEDs and the Blue, Green, and Yellow LEDs. The key backlighting can be configured to blink, pulse, or turn on with a custom brightness.
  • Naga 2014 — Added compatibility with the scroll wheel, thumb grid, and logo LEDs.

ControllerMate v4.8.1 changes —

  • Compatibility with the X-keys XK-128 USB Keyboard has been added.
  • Compatibility with the X-keys XK-24 Plus has been added.
  • Compatibility with the X-keys XK-3 Plus has been added.
  • Compatibility with the Razer Naga 2014 has been improved.
  • Fixed a bug that could sometimes cause a crash while building a ControllerMate Profile.
  • Fixed a bug that could cause ControllerMate‚Äôs background helper to crash when the ControllerMate application is launched.

ControllerMate v4.8 changes —

  • Programming Groups and Application building blocks will now respond to Java applications.
  • The Application building block can now be configured to respond to multiple applications.
  • Dragging building blocks while holding the Option key will create duplicate blocks.
  • Driver Configurations for mice that identify themselves as keyboards will now include acceleration curve settings.
  • The idle CPU usage of ControllerMate has been reduced in certain circumstances.
  • The Palette window will now attempt to identify the non-ControllerMate driver that is being used for a device when that driver prevents a Driver Configuration from being created.
  • Fixed a bug that sometimes caused the wrong title of a group or page to appear in the Inspector window.
  • Fixed a bug that caused building blocks to lose their modifier settings when they are cut and pasted.
  • Fixed a potential crash that could occur when changing a building block's modifier settings.
  • Fixed a bug that could cause a crash when certain types of MIDI events are received while the Palette window is displaying current activity.
  • Fixed a bug that caused ControllerMate‚Äôs main window to fail to close on the first attempt when discarding changes.
  • Fixed a bug that could cause a crash when dragging building blocks along the bottom of a page.
  • Fixed a bug that caused ButtonGroup building blocks to lose their settings when loading programming written by a very old version of ControllerMate.

ControllerMate v4.7.1 changes —

  • Compatibility with the X-keys XK-12 USB Switch Interface has been added.
  • Compatibility with the X-keys XK-68 + Jog & Shuttle has been added.
  • Compatibility with the X-keys XK-68 + Joystick has been added.
  • Fixed a bug that prevented the title of an AppleScript building block from being changed.
  • Fixed a bug that prevented the behavior of a mouse or keyboard's buttons from being reset when a Driver Configuration is disabled.

ControllerMate v4.7 changes —

General Changes

  • The Accumulator building block can now be configured with a minimum value, maximum value, and optional behavior when a limit is reached.
  • The Remainder building block can now be configured to use the sign of the divisor or the sign of the dividend as the sign of the output value.
  • Finder Item building blocks that are configured to open an application will now simply launch the application instead of telling the application to open its own contents.
  • ControllerMate will no longer pause when looking for recommended applications when a Finder Item building block is selected. This is particularly helpful when applications are located on multiple hard disks.
  • Copies of building blocks that depend on the values of Modifier building blocks will retain the modifier settings of the original building blocks.
  • The performance of AppleScript building blocks that execute long-running scripts has been improved.
  • AppleScript building blocks can be configured to use a specific output value while the script is executing.
  • Added an option to Axis building blocks to ignore repeated "0" values from their associated controller. This is helpful for controllers (mice) which report the latest values of all axes when only one axis actually changes.
  • The Counter building block will now retain its initial value while its Reset input remains ON.
  • The Button Group building block can now be configured to set its output to a particular value when its associated controller is detached.
  • The menus in the Inspector window for the Beep building block organize sounds according to where they are found.
  • Clicking on a page in a location where a building block and a note overlap will cause the building block to be dragged instead of the note.
  • Whitespace is trimmed from the end of a building block's note when displaying the block's tooltip.

MIDI Changes

  • The various building blocks that generate MIDI messages can now send those messages either through ControllerMate's virtual MIDI outputs, or to external destinations such as the IAC Driver.
  • The MIDI Variable Program Change Output building block has been added. This building block generates Program Change MIDI messages containing the building block's input value whenever that value changes.
  • MIDI notes are displayed using note/octave notation. A preference has been added to define the octave of Middle C. The preference affects only how the note is displayed, not the associated MIDI message.
  • ControllerMate's virtual MIDI outputs may now be disabled in the Preferences window.

ControllerMate v4.6 changes —

  • ControllerMate can be installed on Mac OS X 10.8 "Mountain Lion" using the default security settings in Gatekeeper.
  • ControllerMate and its helper are now both fully 64-bit applications.

ControllerMate v4.5 changes —

  • The main Editor window has been redesigned to consolidate programming items
  • New building blocks that generate and respond to MIDI messages have been added
  • Axis, Button, and Hatswitch building blocks can now be reconfigured to respond to different controls
  • Several types of building blocks have the ability to configure themselves by capturing activity from a device or keyboard
  • An "Activity" panel that creates pre-configured building blocks for currently active controls has been added to the Palette window
  • Groups have new options to automatically activate and deactivate programming
  • Multiple building blocks of the same type can be modified at the same time
  • Importing and exporting of programming has been simplified
  • Automatic update checking
  • The built-in help pages have been expanded and updated
OrderedBytes