Skip to content
A plain C library to program with hardware controllers.
Branch: master
Clone or download
harryhaaren Merge pull request #92 from openAVproductions/dev_mk3
Maschine Mk3 Metadata (+example fixes)
Latest commit 51bab9a Jul 15, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
ctlra maschine3: improve screen metadata and cleanup Jul 15, 2018
ctlra_scripts scripts/README: add note on tcc May 17, 2017
examples maschine3: add virtual dev capabilities Jul 14, 2018
subprojects firmata: initial commit of firmata based driver Oct 2, 2017
.travis.yml travis: fix meson version to 0.44 for now Mar 4, 2018
LICENSE.txt meson: add ctlra/cairo check and files Mar 10, 2018
meson_options.txt meson: refactor building of examples Mar 4, 2018

Ctlra - A C Library for Controller Support

Ctlra is a plain C library that supports easily programming with hardware controllers like USB HID devices. Recently controllers have become much more powerful and feature-rich devices, resulting in tight integration between software and hardware controllers. This places a burden on software developers, who must support individual devices.

This library makes it easier to access these powerful hardware control surfaces trough a simple API, which exposes buttons, encoders, sliders, and a grid as components of the controller device. The details of the USB HID protocol, and the implementation of the device communication are abstracted.

This library may be of interest if you are writing music, video or other media software. Or if you just want to hack controller support into your web-browser because you can...


Codacy Badge Build Status

Download the source-code, compile using Meson and Ninja (which must be available on the system.)

meson build
cd build

Your application can now statically link against this library. Providing a shared-library and backwards ABI compatilbility to enable new devices without recompilation of the application are long-term goals, which can be discussed when the initial API has been reviewed and used in a few serious applications.

Supported Devices

This library currently supports the following devices:

  • 3DConnexion SpaceMouse Pro (Wireless)
  • Native Instruments Maschine Mikro (Mk2 only)
  • Native Instruments Traktor D2
  • Native Instruments Traktor F1
  • Native Instruments Traktor S2 (Mk2 only)
  • Native Instruments Traktor X1 (Mk2 only)
  • Native Instruments Traktor Z1

Prototyping for several other devices is in progress, but not complete. These devices include:

  • Native Instruments Maschine Jam
  • Nintend WiiMote (Original)
  • Generic MIDI
  • Generic OSC
  • Arduino Serial

Device Manufacturers

If you are or represent a manufacturer of a device, and wish to have your device supported by Ctlra, please contact OpenAV for information on how to best upstream support for your device to Ctlra.


Harry van Haaren OpenAV Productions

You can’t perform that action at this time.