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, tested1
- Launchpad Mini [MK3]: full support
Ensure Rust is installed. The latest version is highly recommended; versions as old as 1.74 are technically supported, but they may require additional configuration.
Then, install with Cargo:
cargo install nccThis 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.4Troubleshooting older Rust versions
If you’re using an older version of Rust, installation may fail with an error like “X cannot be built because it requires rustc Y or newer”. In that case, run this command instead:
cargo install ncc --lockedHowever, this will use outdated versions of ncc’s dependencies, so upgrading to the latest version of Rust is recommended.
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 nccBuild and install the program:
cargo install --path .Troubleshooting older Rust versions
If you’re using Rust 1.83 or earlier, installation may fail with an error like “X cannot be built because it requires rustc Y or newer”. In this case, run this command instead:
cargo install --path . --lockedHowever, this will use outdated versions of ncc’s dependencies, so upgrading to at least Rust 1.84 is recommended.
Alternatively, you can build and run ncc locally without installing:
$ cargo update # recommended if on Rust >= 1.84
$ cargo build --release
$ ./target/release/ncc --version
ncc 0.1.4See 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.syxSee 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.