Ctlra is a software library that allows developers to integrate hardware controllers like USB HID devices easily. The library provides generic events, which can be easily mapped to functionality in the software providing tight integration between the physical device and the software in question. A graphical summary of what Ctlra achieves:
Linux audio conference
The Ctlra library was presented at the 2017 Linux Audio Conference, detailing its design, and introducing it to the community. The paper can be downloaded from here, the slides are available too, and last but not least, the recording of the talk itself is available!
Another presentation of the Ctlra library was held at Sonoj in Koln, Germany. The Sonoj event is more musician focussed, and hence the angle presented on Ctlra is more about what use it could be for musicians. The video is below; check out 17:15 for a demonstration of the Ctlra virtual interfaces!
Users and Developers
The open-source audio world is amazing in that it allows the users and developers of audio software to be directly in contact – improving and integrating ideas at an extremely fast-pace. But some features just can’t be developed without physical access to a controller.
This is one area where open-source audio is not particularly capable – providing powerful integration between software and hardware. Although technically possible to achieve anything, often this requires more than basic software-development skills from musicians to achieve. The Ctlra library addresses this by exposing hardware in a generic way, so when a developer integrates Ctlra support and tests it using a device they have physical access to, then the user should be able to use their controller with the software too!
The concept behind the Ctlra library is simple: to enable all controllers on all software. But there’s a price to pay for such flexibility:
- Controllers need support in the Ctlra library
- Software (DAWs mostly) needs to support Ctlra
- A Ctlra mapping from Controller and Software (+ vice versa)
Currently the Ctlra codebase is being developed on a regular basis. The primary proof-of-concept codebase to test Ctlra with an existing application is the fantastic open-source DJ software Mixxx, a pull request discussing integration is taking place here.