The Novation Launchpad X is a MIDI controller with 80 buttons that connects over USB. By default, Note and Custom layouts can be used, but not the Session layout.
While some software may provide support for this device, it's improbable that all useful packages know about this device. So why not making something that allows music-software to work with the full functionality of this device using standard MIDI messages? That's what this project is.
This program sits in between your music application and the Launchpad X device. It interacts with both, and expands the functionality of a 'stock' Launchpad X with the Session layout and four Mixer layouts (Volume, Pan, Send A and Send B).
When the 'Controller' input and output is connected to your music application, you can use regular MIDI learn functionality to control it with the Launchpad X.
Go to releases and find the latest release.
Get the binary appropriate for your system (if you don't know, it's probably x86_64
), and install
it somewhere in your PATH
:
mkdir -p $HOME/.local/bin && \
wget -O $HOME/.local/bin/lpx-controller \
https://github.com/wvengen/lpx-controller/releases/latest/download/lpx-controller-`uname -i` && \
chmod a+x $HOME/.local/bin/lpx-controller
Alternatively, you can clone this repository and run cargo build --release
, after which you
can find the binary as target/release/lpx-controller
. See Develop for build requirements.
- Connect your Launchpad X to the computer.
- Run
lpx-controller
from the command-line. - You should see the Session button light up.
- Connect your audio application to Launchpad X Helper's ports named Controller in and Controller out.
- When you're done, press
Ctrl-C
in the console to stop this program.
Note that this program doesn't currently reconnect to the Launchpad X when you plug it in and out. You're probably using a patchbay application already, so you might consider including these too. A later version of the program could perhaps reconnect automatically (and re-initialize without having to press Session again).
The four mixer layouts are initialized to send the following control change messages:
- Volume - Channel 5, CC 30 - 37
- Pan - Channel 5, CC 38 - 45
- Send A - Channel 5, CC 46 - 53
- Send B - Channel 5, CC 54 - 61
Note that your music application must not echo received control changes back to the device, because the Launchpad X fades the mixer channels, and on receiving the fade will stop.
Feel free you share your usage of this program by submitting an issue or PR.
- Luppp - with this PR and this controller definition
You'll need Rust 1.52.0+ with Cargo. The easiest option to get a recent enough Rust is using Rustup.
You also need the ALSA headers. On Debian you would need to run apt-get install libasound2-dev
,
on Fedora dnf install alsa-lib-devel
.
With these in place, running a development version of lpx-controller is as easy as cargo run
.
Relevant links:
- RMididings, on which lpx-controller is built.
- mididings documentation, which RMididings is inspired by.
- Launchpad X programmer's reference guide
- A previous version of lpx-controller in Python.
This program is licensed under the GNU GPL v3 or later.