ncc compiles text-based configuration files into custom modes for Novation MIDI devices.
The behavior and appearance of controls on the device are specified using TOML files, which are then compiled by ncc into MIDI SysEx messages that can be sent to the hardware to apply the custom mode.
ncc is not affiliated with Novation or its parent, Focusrite plc.
- Launchkey [MK3]: full support
- Launchkey Mini [MK3]: full support, tested1
- FLkey: full support
- FLkey Mini: full support
- Launchpad X: full support
- Launchpad Mini [MK3]: full support
Ensure Rust 1.74 or later is installed. Then install with Cargo:
cargo install ncc
This will install a binary named ncc
in ~/.cargo/bin
. If that directory is
in your PATH
, you can run the program simply by typing ncc
in your shell:
$ ncc --version
ncc 0.1.3-dev
Manual installation
To compile and install ncc manually, ensure the following dependencies are installed:
Download the source code:
git clone https://github.com/taylordotfish/ncc
cd ncc
Build and install the program:
cargo install --path .
Alternatively, you can build and run ncc locally without installing:
$ cargo build --release
$ ./target/release/ncc --version
ncc 0.1.3-dev
See ncc --help
for detailed usage information. The simplest use of ncc is
ncc <file>
, which compiles the TOML file <file>
into a SysEx file with the
same name but ending in .syx
:
$ cd examples/launchkey-mini-mk3
$ ls example-pads*
example-pads.toml
$ ncc example-pads.toml
$ ls example-pads*
example-pads.toml example-pads.syx
See the examples directory for a demonstration of how to write custom modes for ncc.
To install custom modes on your device, the compiled .syx
file needs to be
sent to the device as MIDI (and the response from the device must be read). The
way to do this depends on your operating system. A guide is available
for GNU/Linux systems using ALSA.
ncc is licensed under version 3 of the GNU Affero General Public License, or (at your option) any later version. See LICENSE.
The example .toml
files in the examples directory have additionally been
released to the public domain using CC0.
Pull requests are welcome. By contributing to ncc, you agree that your contribution may be used under the terms of ncc’s license.
Footnotes
-
Tested on real hardware. ↩