A plain C library to program with hardware controllers.
Clone or download
harryhaaren Merge pull request #92 from openAVproductions/dev_mk3
Maschine Mk3 Metadata (+example fixes)
Latest commit 51bab9a Jul 15, 2018

README.md

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...

Usage

Codacy Badge Build Status

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

meson build
cd build
ninja
./simple

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.

Contact

Harry van Haaren harryhaaren@gmail.com OpenAV Productions http://openavproductions.com