A custom Chataigne module to expose most of Liberation's currently-available MIDI controls.
Chataigne exposes human-readable control and value names to the user and
sends/receives specific note and CC numbers to/from Liberation. The included
Chataigne_Module.mcfg maps those values to Liberation actions.
IMPORTANT NOTE: Requires Liberation beta v1.4.4 or NEWER!
The following features are currently supported.
- Clips (8x5 grid, same as on-screen)
- Clips by absolute position (first 2 pages)
- Clip properties (9 types, see note below)
- Static matches for eight zone delay values (for LED feedback)
- Zones (8)
- Groups (5)
- Effects (24 lanes: toggle, level, 3 parameters)
- Effects by absolute position (40 lanes: toggle, level, 3 parameters)
- General params (10)
- Transport & tempo
- Status feedback (lasers/play/record/beat/bar/tempo-multiplier)
Much of this was built using Claude Code and carefully reviewed and tested manually. The excessive amount of comments in liberation.js are generated by Claude and remain for ease of updates and maintenance.
module.json- Chataigne module definition (Values + Commands)liberation.js- Chataigne module script (command callbacks + incoming MIDI handling)Chataigne_Module.mcfg- Liberation MIDI config file. Install into Liberation'sdata/midifolder per its own READMEADDRESS_MAP.md- Shared note/CC table which both files are built from
The IAC virtual MIDI driver is available by default in MacOS.
- Open the "Audio MIDI Setup" application, and ensure the MIDI Studio window is open.
- Double click "IAC Driver" to open its properties.
- Ensure the device is online (check
Device is onlineif unchecked) - Add 2 ports for Liberation. Keep track of these port names (bus number) to setup Chataigne and the Liberation mcfg.
Windows users should install loopMIDI to manage virtual MIDI devices/ports.
- Open loopMIDI
- Create 2 new ports. DO NOT USE THE DEFAULT NAME
loopMIDI Port #. Give them a dedicated name such as "Chataigne In" and "Chataigne Out" - Keep track of these port names to setup Chataigne and the Liberation mcfg in the next sections.
- Copy the
Liberation-Chataigne-Modulefolder intoDocuments/Chataigne/modules/. - In Chataigne: File > Reload custom modules (or restart Chataigne).
- Add a Liberation module from the modules panel (should appear under Software).
- Set its MIDI input/output ports so they route to/from the ports created in the Virtual MIDI device configuration section above.
Follow the Liberation MidiControllerConfigs README:
- Copy
Chataigne_Module.mcfginto thedata/midifolder for the current Liberation version. - Inside Liberation, go to Settings > MIDI Control Surfaces > Rescan MIDI interfaces.
- Ensure the 2 new MIDI virtual interfaces are shown in the list of available interfaces.
- In the
Chataigne_Module.mcfg, update thedeviceandinput/output_port_containslines to match the port names configured above. See the comment at the top of themcfgfile for details. - Inside Liberation settings, click Reload MIDI Configs to update the auto-detection.
If the auto-detection does not work:
- In Liberation MIDI settings, set the corresponding MIDI interface to manual, then select the "Chataigne Liberation" config. If this works, proceed to step 2. If not, proceed to step 3.
- Recheck the
deviceandinput/output_port_containslines in the mcfg against the device names on your system. - Ensure the modified mcfg does not have any extra lines or comments. Compare against the mcfg from the repo if you are unsure.
- If it is still not working, check for issues on GitHub and either create a new issue or reply to the thread on the Liberation forum for support.
Inside Chataigne, Liberation actions and properties will be directly exposed as input values or command targets for actions and mappings.
clip_property_abs(per-property absolute clip writes). The address space is already reserved on channel 6, CC 0-119- Bank-relative effect parameters 4-10. Channels 9-10 are reserved for this
- More 14-bit
fineCC encoding. Channels 13, 14 and 16 are free, and channel 15 is the LSB pool - Shift/Alt (added but not tested)
Clip properties (clip_property) are currently exposed for feedback in the mcfg, but not in the module.
There's no per-cell feedback Value because 40 clips x 9 properties would be 360 entries
in the Values tree. Chataigne_Module.mcfg does connect all 360 addresses to Liberation
(see ADDRESS_MAP.md).
Due to missing feedback from Liberation, some clip properties such as scale_x/y are using a sketchy state tracking system which is only aware of the clip properties sent from Chataigne to Liberation. This does not track feedback from Liberation and resets on clip change. This module will be updated as more feedback paths become available from Liberation.
This module is published by Dam Lasers under a GPL v3 License.
For more information about Dam Lasers, please visit us at damlasers.nl, or follow us on Instagram or YouTube.